让我说我有我的配料清单:{‘土豆’,‘大米’,‘胡萝卜’,‘玉米’}
我想从一个与我的数据库非常相似的数据库中返回列表:
{“豆类”、“土豆”、“橙子”、“生菜”}、{“胡萝卜”、“大米”、“玉米”、“苹果”}{洋葱、大蒜、萝卜、鸡蛋}
我的查询将首先返回:{‘胡萝卜’,‘大米’,‘玉米’,‘苹果’}
我使用过Solr,并且看过CloudSearch、ElasticSearch、Algolia、Searchify和Swiftype。这些引擎似乎只允许我放入一个查询字符串,然后通过其他方面进行筛选。
在一个真实的场景中,我的搜索列表将有大约200个条目,并且将与我的数据库中的大约100万个列表进行匹配。
我应该使用什么技术来完成我想要做的事情?
我应该把目光从搜索索引器和更多的数据库类的东西,如芒果,地图减少,hadoop.我所知道的只是其他技术的名称,我只需要有人为我指明正确的方向,我应该探索这方面的技术路线。
有了这么多的数据,我真的无法循环它,我需要一次查询所有的东西。
发布于 2015-06-12 10:21:20
我想知道是什么原因阻止您尝试使用Solr,因为Solr提供了您所需的大部分内容。可以将字段声明为type="string" multiValued="true,并将每个列表项保存为值。然后,在查询时,将列表中的每一项指定为该字段的搜索项,Solr将在默认情况下返回最接近的匹配项。如果需要精确控制将被视为匹配项(例如,搜索列表中至少40%的术语必须在匹配列表中),则可以使用mm EDisMax参数cf。Solr Wiki
话虽如此,我必须补充说,我从未搜索过200个查询项(我是否正确地指出,应该搜索其内容的列表将包含大约200项?)也不知道它的表现有多好。但是,我认为设置测试核心并使用脚本填充随机列表不需要花费超过几个小时的时间,因此应该可以在不花费太多时间的情况下评估这种方法的性能。
https://stackoverflow.com/questions/30799660
复制相似问题