vcaesar/riot

Go Open Source, Distributed, Simple and efficient Search Engine

解决的问题

Riot 是一个用 Go 编写的快速、现代化的文本索引和搜索引擎。它提供了一种将全文搜索功能集成到 Go 应用程序中的方法,而无需单独的外部搜索服务器。

运作方式

它作为一个库,允许开发人员为包含各种字段类型(文本、数字、日期、布尔值、IP、地理坐标和向量)的文档创建索引。它支持广泛的查询类型,包括词项、短语、匹配、前缀、正则表达式和模糊搜索,以及复杂的布尔逻辑和范围查询。对于 CJK(中文、日文、韩文)文本,它提供了一个封装器,集成了 gse 分词器以实现更好的语言特定索引。

适用对象

需要高性能、嵌入式搜索引擎,以便在自己的应用程序进程内对文档进行索引和查询的 Go 开发人员。

特色亮点

  • 多样化的字段支持:处理文本、数字、日期、布尔值、IP、地理坐标和向量字段。
  • 高级查询:支持 KNN、模糊搜索、正则表达式和地理边界框。
  • BM25 相似度:使用 BM25 进行评分和相似度计算,并提供可插拔接口。
  • 内置聚合功能:包含分桶(词项、数字/日期范围)和指标(最小值、最大值、计数、总和、平均值、基数估计和分位数近似)。
  • CJK 支持:通过 gse 包提供对中文和日文文本的专门支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目