有没有办法使用 Lucene 来处理图形数据?
示例
一个用户与许多lucene文档有关系(Document Connections) 一个用户与其他用户有关系(用户连接[图])
如果用户搜索索引,他会得到与他有关系的文档。这简单明了。
有什么方法可以取回与用户连接有关系的文档。
在 user_id 字段中为每个文档以及与其有关系的所有用户建立索引是一种方法。但是,当您查询为执行搜索的用户提供用户连接的索引时,查询的大小是不可预测的。想象一下拥有数千个用户连接的用户。这不会扩展。
这几乎就像存储在图形数据库中的用户连接和用户文档可以轻松地为我们提供要搜索的文档,但是将其传达给 Lucene 的有效方法是什么,以便它只能针对给定的查询搜索这些文档。如果返回任何结果,这将保证至少一个或多个用户连接与结果中返回的文档有关系。
最佳答案
我不相信目前有任何基于 solr 或 lucene 的图形技术。
您可能最好看看这两个阵营之一:
- Neo4j 与 SpringData(单实例免费)
或者
- Tinkerpop 蓝图(如果不使用 java/scala,可能是 rexter) 关于其中一项技术:
- Cassandra 上的 Titan 与 Hadoop(多主机,无故障点)
- 东方数据库
- Neo4j
这些数据库是图形数据库。 Tinkerpop Blueprints 是一个标准,允许您抽象具体的实现。 Springdata 目前仅支持 Neo4j 图形技术。
如果您进行集群,Neo4j 需要付费(免费许可证仅限于单实例)。
您可以在此处阅读有关 solr/lucene 与绘图的讨论。 http://lucene.472066.n3.nabble.com/indexing-directed-graph-td2949556.html
注意 neo4j 支持全文搜索。
关于search - 使用 Lucene 处理图形数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993640/