5

有没有办法使用 Lucene 处理图形数据?

例子

一位用户与许多 lucene 文档有关系(文档连接) 一位用户与其他用户有关系(用户连接 [Graph])

如果用户搜索索引,他会取回与他有关系的文档。这是简单明了的。

什么是取回与用户连接有关系的文档的方法。

在 user_id 字段中使用与其有关系的所有用户对每个文档进行索引是一种方法。但是,当您查询为执行搜索的用户提供用户连接的索引时,查询大小是不可预测的。想想拥有 1000 个用户连接的用户。这不会扩展。

这几乎就像存储在 Graph DB 中的用户连接和用户文档可以轻松地为我们提供要搜索的文档,但是将其传达给 Lucene 的有效方式是什么,因此它只能针对给定查询搜索这些文档。如果返回任何结果,这将保证至少一个或多个用户连接与结果中返回的文档有关系。

4

3 回答 3

3

我不相信目前有任何图形技术位于 solr 或 lucene 之上。

你可能最好看看这两个阵营中的任何一个:

  • 带有 SpringData 的 Neo4j(单实例免费)

或者

  • Tinkerpop Blueprints(如果不使用 java/scala,可能是 rexter)在以下技术之一上:
  • 带 Hadoop 的 Cassandra 上的 Titan(多主机,无故障点)
  • 东方数据库
  • Neo4j

这些数据库是图形数据库。Tinkerpop Blueprints 是一种允许您抽象具体实现的标准。Springdata 目前只支持 neo4j 的图技术。

如果您使用集群,Neo4j 会花钱(免费许可证仅限单实例)。

你可以在这里阅读关于 solr/lucene 的讨论。 http://lucene.472066.n3.nabble.com/indexing-directed-graph-td2949556.html

注意 neo4j 支持全文搜索。

于 2013-02-21T02:42:12.730 回答
0

从 solr 6.0 开始支持图形数据库;如果您没有安装 solr,那么使用图形数据库可能会更好,但现在至少,您有一个选择。我发现了这一点,文档仍然很少:

https://solr.pl/en/2016/04/18/solr-6-0-and-graph-traversal-support/

于 2018-01-25T10:19:56.533 回答
0

Apache Jena 可能与此处相关,因为它具有一些图形功能(SPARQL、RDF)并利用了 Lucene。

请参阅 Apache Jena Fuseki 和 Jena Text。

于 2020-02-19T23:58:00.997 回答