1、ElasticSearch
Elasticsearch 是位于Elastic Stack核心的分布式 RESTful 搜索和分析引擎。您可以使用 Elasticsearch 来存储、搜索和管理以下数据:日志、指标、一个搜索后端、应用监控、端点安全。
github地址:https://github.com/elastic/elasticsearch
2、 typesense
Typesense 是一种快速、可容忍错字的搜索引擎,用于构建令人愉悦的搜索体验。开源 Algolia 替代方案和更易于使用的 ElasticSearch 替代方案。
引擎特征:
Typo Tolerance:优雅地处理印刷错误,开箱即用。
简单而令人愉快:易于设置、集成、操作和扩展。
⚡极快:内置 C++。从头开始精心设计,用于低延迟(<50 毫秒)即时搜索。
可调排名:轻松调整您的搜索结果以达到完美。
排序:在查询时根据特定字段对结果进行排序(对“按价格排序(asc)”等功能很有帮助)。
分面和过滤:向下钻取并优化结果。
分组和不同:将相似的结果分组在一起以显示更多样。
联合搜索:在单个 HTTP 请求中搜索多个集合(索引)。
地理搜索:搜索并按地理位置周围的结果排序。
Scoped API Keys:生成仅允许访问某些记录的 API 密钥,用于多租户应用程序。
同义词:将单词定义为彼此的等价词,因此搜索单词也会返回定义的同义词的结果。
策展和商品化:将特定记录提升到搜索结果中的固定位置,以展示它们。
基于 Raft 的集群:建立一个高可用的分布式集群。
无缝版本升级:随着新版本的 Typesense 的出现,升级就像换出二进制文件并重新启动 Typesense 一样简单。
无运行时依赖性: Typesense 是一个二进制文件,您可以使用单个命令在本地或生产环境中运行。
github地址:https://github.com/typesense/typesense
3、MeiliSearch
MeiliSearch是一个强大、快速、开源、易于使用和部署的搜索引擎。搜索和索引都是高度可定制的。诸如错字容忍、过滤器和同义词之类的功能是开箱即用的。有关功能的更多信息。
引擎特征:
搜索即输入体验(答案 < 50 毫秒)
全文检索
错别字容忍(理解错别字和拼写错误)
分面搜索和过滤器
支持汉字(汉字)
支持同义词
易于安装、部署和维护
整个文件被退回
高度可定制
支持RESTful API
github地址:https://github.com/meilisearch/MeiliSearch
4、Riot
Go 开源、分布式、简单高效的全文搜索引擎。
引擎特征:
高效索引和搜索(1M 条微博 500M 数据28 秒索引完成,1.65 毫秒搜索响应时间,19K 搜索 QPS)
支持中文分词(使用gse分词包并发分词,速度27MB/秒)
支持逻辑搜索
支持中文转拼音搜索(使用gpy中文转拼音)
支持关键词在文本中的紧邻计算距离(token proximity)
支持计算BM25相关度
支持自定义评分规则和评分规则
支持在线添加、删除索引
支持多种持久存储
支持心跳
支持原创和搜索
可实现应用索引和搜索
采用对商业应用友好的Apache License v2发布
查看分词规则
github地址:https://github.com/go-ego/riot
网友回复