elasticsearch 图表、方面、全文:最好的世界?,elasticsearch,lucene,neo4j,graph-databases,faceted-search,elasticsearch,Lucene,Neo4j,Graph Databases,Faceted Search" /> elasticsearch 图表、方面、全文:最好的世界?,elasticsearch,lucene,neo4j,graph-databases,faceted-search,elasticsearch,Lucene,Neo4j,Graph Databases,Faceted Search" />

elasticsearch 图表、方面、全文:最好的世界?

elasticsearch 图表、方面、全文:最好的世界?,elasticsearch,lucene,neo4j,graph-databases,faceted-search,elasticsearch,Lucene,Neo4j,Graph Databases,Faceted Search,Lucene,Elasticsearch:分面搜索,全文搜索,很棒 Neo4j,也许是泰坦:图形搜索令人惊叹 但是,对于结合方面、全文和图形的查询,什么是好的策略呢?我不想将图形搜索结果具体化,并将其带入到分面/全文查询中。如何将这些世界结合起来 以下是一个例子: 方面–我们有“项目”和方面,如修改日期、状态、项目类型(以及更多;尽管这些项目的字段/方面甚至是可配置的,但合理的平均项目大约有20个方面) 图形–这些“项目”彼此相关(我们经常谈论“上游”和“下游”项目/关系),它们以各种方式与

Lucene,Elasticsearch:分面搜索,全文搜索,很棒

Neo4j,也许是泰坦:图形搜索令人惊叹

但是,对于结合方面、全文和图形的查询,什么是好的策略呢?我不想将图形搜索结果具体化,并将其带入到分面/全文查询中。如何将这些世界结合起来


以下是一个例子:

  • 方面–我们有“项目”和方面,如修改日期、状态、项目类型(以及更多;尽管这些项目的字段/方面甚至是可配置的,但合理的平均项目大约有20个方面)
  • 图形–这些“项目”彼此相关(我们经常谈论“上游”和“下游”项目/关系),它们以各种方式与用户相关,它们有关联的注释(反过来,会有更多的用户关联)
现在,我们想进行如下查询:

  • 显示距离给定项目列表(图形关注点)x步远的所有“项目”,这些项目处于某个状态,并且在过去30天内被修改(刻面关注点)
  • 向我显示连接到给定“项目”的所有用户,这意味着他们修改或评论了给定项目或其任何相关项目,距离给定项目最多x步,前提是这些相关项目处于特定状态,并且在修改给定项目后进行了修改

您可以在Lucene中建模图形,但这似乎是一个很大的难题。(证明我错了!)

您可以向Neo4j添加方面,但这似乎是一个性能风险,而它并没有针对这一风险进行优化。(但也许你有不同的经历。)


也许这个问题有一个解决办法。

好吧,毫不奇怪,这要看情况而定。如果这是一个有点笼统的答案,我会向你道歉,但如果没有更多关于挑战性质的细节,这可能是最好的答案

您需要首先概述您的查询用例是什么,以及关联的数据量是什么。如果这是一个普通的数据库,并且我们试图优化您的查询以使其尽可能快,那么我们将首先尝试确定查询的哪些部分是最有选择性的。然后,我们会先将它们推向执行,将查询中选择性较低的部分留待以后执行。这样做的好处是可以迅速减少我们正在处理的潜在结果的数量

所以,让我们规定您需要进行分面搜索、全文搜索和图形搜索。如果您可以查看您的数据以及您要查找的方面/文本/图形模式的类型,通常首先要做最具排他性/选择性的事情

至于在lucene中建模图形,我认为这是可行的,但前提是切面搜索位是您最大的需求,并且图形位相当原始。在lucene中处理诸如“最短路径”之类的事情听起来很痛苦(尽管我早就学会了不要说事情是不可能的,因为如果你有足够的时间,几乎没有什么事情是不可能的)


也可以进行杂交(即在neo4j中不使用lucene,而是单独使用并相互连接)。我不太愿意在没有更多细节的情况下提出这个建议,因为这是一个强大(但复杂且昂贵)的方法。

这是一个基于意见的问题。在这一点上,我只是在寻求一个有效的解决方案。我知道你怎么能把我关于“好策略”的问题理解为基于观点的,但我很高兴首先得到关于如何做到这一点的答案,我也很乐意自己解决主观问题。桑德,我认为你没有提供足够的信息来解决这个问题。这个问题的读者不会理解你将切面搜索、全文搜索和图形搜索相结合的意思,除非你提供了一些例子,说明你需要向一个结合了这些东西的数据库提出什么样的问题。我试了一下,但我知道那只是泛泛而谈。但是如果没有更多的信息,我就做不到更好。谢谢你。我已经添加了一些用例,我们正试图覆盖这些用例。我对这个问题被搁置感到失望。我一直在努力成为一个好公民,我也不喜欢广泛的问题,但我不明白这是怎么回事。不是每个人都能回答这个问题,但是如果您以前处理过这个问题,您可能能够非常清楚地概述什么架构适合您。我不认为建筑问题是校长的禁区,是吗?请帮助我改进问题,使您满意。