search - 使用 Lucene 处理图形数据

标签 search graph lucene search-engine

有没有办法使用 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/

相关文章:

vb.net - 创建 SEARCH 并浏览每个结果

flutter - Flutter 中的 Listview 过滤器搜索

java - 如何在jfree中从log 10切换到log 2

python - 求和最大路径算法给出了意想不到的解决方案

solr - 我们可以一起使用 WhitespaceTokenizerFactory 和 StandardToken 来只接受几个特定的​​符号吗?

python - 如何实现二叉树?

算法挑战 : Find the unique value in an array

java - 将 HashMap 用于节点和图数据结构

java - 在 Lucene 中处理带有否定术语的文档

java - Hibernate 搜索索引单个租户