跳到内容

Apache Lucene

Apache Lucene 是一个用 Java 编写的高性能、全功能的文本搜索引擎库。它是一种适用于几乎任何需要全文搜索的应用程序的技术,尤其是跨平台的应用程序。Apache Lucene 是一个可免费下载的开源项目。

Apache Lucene 主页

JanusGraph 支持 Apache Lucene 作为单机嵌入式索引后端。与 Elasticsearch 相比,Lucene 具有略微扩展的功能集,在小型应用程序中性能更好,但仅限于单机部署。

Lucene 嵌入式配置

对于单机部署,Lucene 与 JanusGraph 嵌入式运行。JanusGraph 启动并与 Lucene 内部接口。

要嵌入式运行 Lucene,请将以下配置选项添加到图配置文件中,其中 /data/searchindex 指定 Lucene 应该存储索引数据的目录

index.search.backend=lucene
index.search.directory=/data/searchindex

在上述配置中,索引后端被命名为 search。将 search 替换为不同的名称以更改索引的名称。

功能支持

  • 全文:支持所有 Text 谓词,用于搜索匹配给定单词、前缀或正则表达式的文本属性。
  • 地理:支持 Geo 谓词,用于搜索与给定查询几何图形相交、位于其中或包含在其中的地理属性。支持点、线和多边形进行索引。支持圆形和方框用于查询点属性,以及所有形状用于查询非点属性。
  • 数字范围:支持 Compare 中的所有数字比较。
  • 集合:支持索引 SET 和 LIST 基数属性,除了 Geo
  • 时间:纳秒粒度的时间索引。
  • 自定义分析器:选择使用自定义分析器
  • 非查询范式:支持除查询范式(QNF)之外的查询。JanusGraph 的 QNF 是 CNF(合取范式)的变体,其中尽可能地内联了否定。

配置选项

有关所有 Lucene 特定配置选项以及通用 JanusGraph 配置选项的完整列表,请参阅配置参考

请注意,每个索引后端选项都需要以 index.[INDEX-NAME]. 为前缀,其中 [INDEX-NAME] 代表索引后端的名称。例如,如果索引后端名为 search,则这些配置选项需要以 index.search. 为前缀。要配置名为 search 的索引后端以使用 Lucene 作为索引系统,请设置以下配置选项

index.search.backend=lucene

进一步阅读