我们正在研究一项建议,为我们的需求寻找一个合适的搜索引擎。让我解释一下我们的数据结构。它是一种层次数据结构。基本上,一个产品的细节安排在一棵树上,如下所示。
层次结构
面包店
面包
饼干
面包棒
成本
咖啡店
准再税
自愿性-无偿性
成品油成品油
上面的树结构有一个搜索要求。我们正在探索各种工具。
我们已经尝试过在mysql数据库中使用嵌套集模型。因此,上面的树被构造成一个嵌套的集合模型,在左边和右边的位置。由于并发请求数量更多,并且考虑到可伸缩性,我们在内存/搜索引擎方面移动得更多,这将使请求处理得更快。
因此,我们已经开始探索建立在lucene上的Apache。我们理解solr更适合于平面结构搜索,而不是层次节点搜索。但是我们试着把这棵树建成一个扁平的结构,但最后我们遇到了下面的复杂情况。
平面结构
L1
面包店,商品面包
面包店-无价面包
面包店-无价面包
咖啡店
咖啡店
在平面结构中的问题我们在Solr中创建了这个结构,当我们用"Bakery“在所有级别进行搜索时,我们最终得到了以下三个记录
面包店,商品面包
面包店-无价面包
面包店-无价面包
,我们的需求,我们的需求是只发送匹配节点及其父节点。当我们使用交叉引用时,只有一个节点需要发送,即Bakery.
在我们的例子中,将会有大量的记录,我们觉得这个平面结构可能不是正确的选择。
请你提出任何好的选择来接近上述搜索。理想情况下,响应也应该是一个tree...is,就像持久化树一样,我们将能够基于节点进行搜索,并获取它的父节点Neo4j?相反,我们处理搜索结果。数据量约为2000万。
发布于 2016-05-25 17:19:14
我认为这个MongoDB正式文档有您的答案,您必须根据您的使用模式选择这个答案:
https://docs.mongodb.com/manual/applications/data-models-tree-structures/
发布于 2016-05-26 13:03:03
从Solr 6开始,就有对基本图遍历的支持。这将允许您为可发现性构造平面文档,并为结果中的父包含进行图形遍历。
https://stackoverflow.com/questions/37443458
复制相似问题