Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 层次树搜索引擎_Mongodb_Solr_Neo4j_Lucene_Search Engine - Fatal编程技术网

Mongodb 层次树搜索引擎

Mongodb 层次树搜索引擎,mongodb,solr,neo4j,lucene,search-engine,Mongodb,Solr,Neo4j,Lucene,Search Engine,我们正在制定一项建议,为我们的需求寻找一个合适的搜索引擎。让我解释一下我们的数据结构。它是一个层次数据结构。基本上是一个产品的细节安排在树像下面 层次结构 面包店 面包 饼干 面包棒 面包卷 咖啡馆 忠诚 贝瓦拉奇 包装食品 上面的树结构需要搜索。我们正在探索各种工具 我们在mysql数据库中尝试了嵌套集模型。因此,上面的树被构造为一个嵌套集模型,具有左、右位置。由于并发请求的数量越来越多,并且考虑到可伸缩性,我们在内存/搜索引擎方面做了更多的改进,这将更快地处理请求 因此,我们开始探索基于lu

我们正在制定一项建议,为我们的需求寻找一个合适的搜索引擎。让我解释一下我们的数据结构。它是一个层次数据结构。基本上是一个产品的细节安排在树像下面

层次结构

面包店

面包

饼干

面包棒

面包卷

咖啡馆

忠诚

贝瓦拉奇

包装食品

上面的树结构需要搜索。我们正在探索各种工具

我们在mysql数据库中尝试了嵌套集模型。因此,上面的树被构造为一个嵌套集模型,具有左、右位置。由于并发请求的数量越来越多,并且考虑到可伸缩性,我们在内存/搜索引擎方面做了更多的改进,这将更快地处理请求

因此,我们开始探索基于lucene的Apache Solr。我们知道solr更适合于平面结构搜索,而不是层次节点搜索。但我们尝试将树创建为一个平面结构,但最终出现了以下复杂情况

扁平结构
L1 L2 L3
烘焙面包饼干
面包房面包面包棒
面包店面包包和面包卷
咖啡店Rolyalty Bevarage
咖啡店Royally包装食品

扁平结构中的问题 我们在Solr中创建了这个结构,当我们使用“Bakery”进行所有级别的搜索时,我们最终得到以下三个记录

BakeryBreadsBiscuits
烘焙面包棒
面包卷和面包卷

我们的要求 我们的要求是只发送匹配节点及其父节点。当我们使用交叉引用时,只有一个节点需要发送,即面包房

在我们的例子中,将会有大量的记录,我们觉得这种平面结构可能不是正确的选择


你能推荐一些好的方法来进行上述搜索吗。理想情况下,响应也应该是一棵树……它是否像持久化一棵树一样,我们将能够基于节点进行搜索并获取其父节点Neo4j?。相反,我们正在处理搜索结果。数据量大约为2000万

我认为这篇MongoDB官方文档有您的答案,您必须根据您的使用模式来选择:


我认为这篇MongoDB官方文档有您的答案,您必须根据您的使用模式来选择:


从Solr 6开始,支持。这将允许您为可发现性构建平面文档,并为结果中的父级包含进行图形遍历。

从Solr 6开始,支持。这将允许您构建平面文档以实现可发现性,并通过图形遍历将父级包含在结果中。

谢谢Alexandre。我想这会有帮助的。我们可能必须以垂直方式定义结构,然后让父引用引用它。例如,如果我们有类似于此节点的结构父面包店面包店面包店面包贴邻接模型在此处定义-如果我的理解不正确,请更正。因此,如果我使用此邻接模型构建数据,则我可以使用solr的图形查询解析器,我相信感谢Alexandre。我想这会有帮助的。我们可能必须以垂直方式定义结构,然后让父引用引用它。例如,如果我们有类似于此节点的结构父面包店面包店面包店面包店面包店面包店这里定义了邻接模型-如果我的理解不正确,请更正。因此,如果我使用此邻接模型构建数据,那么我可以使用solr I BelieveThank Tiramisu的图形查询解析器。看看这个。由于我们在搜索方面有更复杂的需求,我们希望利用搜索引擎提供的搜索功能。谢谢提拉米苏。看看这个。由于我们在搜索方面有更复杂的需求,我们希望利用搜索引擎提供的搜索功能。