vcaesar/riot

Go Open Source, Distributed, Simple and efficient Search Engine

解決的問題

Riot 是一個用 Go 編寫的快速、現代化文字索引與搜尋引擎。它提供了一種將全文搜尋功能整合到 Go 應用程式中的方法,而無需額外的外部搜尋伺服器。

運作方式

它作為一個函式庫,允許開發人員為包含各種類型欄位(文字、數字、日期、布林值、IP、地理座標和向量)的文件建立索引。它支援多種查詢類型,包括詞彙、短語、匹配、前綴、正規表示式和模糊搜尋,以及複雜的布林邏輯和範圍查詢。對於 CJK(中文、日文、韓文)文字,它提供了一個封裝器,整合了 gse 分詞器以實現更好的語言特定索引。

適用對象

需要高效能、嵌入式搜尋引擎,以便在應用程式進程內對文件進行索引和查詢的 Go 開發人員。

特色亮點

  • 多樣化的欄位支援:處理文字、數字、日期、布林值、IP、地理座標和向量欄位。
  • 進階查詢:支援 KNN、模糊搜尋、正規表示式和地理邊界框。
  • BM25 相似度:使用 BM25 進行評分和相似度計算,並提供可插拔介面。
  • 內建聚合功能:包含分桶(詞彙、數字/日期範圍)和指標(最小值、最大值、計數、總和、平均值、基數估計和分位數近似)。
  • CJK 支援:透過 gse 套件提供對中文和日文文字的專門支援。

相關

  • 專案
  • 專案
  • 專案
  • 專案