Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search 我使用什么索引器查找集合中与我的列表最相似的列表?_Search_Indexing_Solr_Levenshtein Distance - Fatal编程技术网

Search 我使用什么索引器查找集合中与我的列表最相似的列表?

Search 我使用什么索引器查找集合中与我的列表最相似的列表?,search,indexing,solr,levenshtein-distance,Search,Indexing,Solr,Levenshtein Distance,假设我有我的配料清单: {‘土豆’、‘大米’、‘胡萝卜’、‘玉米’} 我想从数据库中返回与我最相似的列表: {‘豆’、‘土豆’、‘橘子’、‘莴苣’}, {‘胡萝卜’、‘大米’、‘玉米’、‘苹果’} {‘洋葱’、‘大蒜’、‘萝卜’、‘鸡蛋’} 我的查询将首先返回以下内容: {‘胡萝卜’、‘大米’、‘玉米’、‘苹果’} 我使用了Solr,并研究了CloudSearch、ElasticSearch、Algolia、Searchify和Swiftype。这些引擎似乎只允许我输入一个查询字符串,然后通过其

假设我有我的配料清单: {‘土豆’、‘大米’、‘胡萝卜’、‘玉米’}

我想从数据库中返回与我最相似的列表:

{‘豆’、‘土豆’、‘橘子’、‘莴苣’}, {‘胡萝卜’、‘大米’、‘玉米’、‘苹果’} {‘洋葱’、‘大蒜’、‘萝卜’、‘鸡蛋’}

我的查询将首先返回以下内容: {‘胡萝卜’、‘大米’、‘玉米’、‘苹果’}

我使用了Solr,并研究了CloudSearch、ElasticSearch、Algolia、Searchify和Swiftype。这些引擎似乎只允许我输入一个查询字符串,然后通过其他方面进行过滤

在一个真实的场景中,我的搜索列表大约有200个条目,并且将与数据库中的大约一百万个列表相匹配

我应该使用什么技术来完成我想做的事情

我应该把目光从搜索索引器转移到像mongo、map reduce、hadoop这样的数据库类的东西上吗。。。我只知道其他技术的名称,我只需要有人给我指出正确的方向,我应该为此探索什么样的技术道路


有这么多的数据,我真的无法循环,我需要一次查询所有数据

我想知道是什么阻止了你尝试Solr,因为Solr提供了你所需要的很多东西。您可以将字段声明为
type=“string”multiValued=“true
,并将每个列表项保存为一个值。然后,在查询时,指定列表中要查找的每个项作为该字段的搜索项,默认情况下,Solr将返回最接近的匹配项。 如果您需要精确控制将被视为匹配的内容(例如,搜索列表中至少40%的术语必须在匹配列表中),您可以使用
mm
EDisMax参数,cf


话虽如此,我必须补充一点,我从未搜索过200个查询词(我是否正确理解应该搜索其内容的列表将包含大约200个项目?)我不知道它的性能有多好。但我想,设置一个测试核心并使用脚本填充随机列表不应该超过几个小时,因此应该可以在不花费太多时间的情况下评估这种方法的性能。

这是一个很好的信息。非常感谢您为我指明了正确的方向与solr合作。我将尝试一下。好的,我尝试了这个,它返回了零结果=\n不确定从这里开始。尝试寻找自由职业者。这种方法通常有效。(我非常确定,因为我在发布答案之前已经尝试过。)为什么它在你的案例中不起作用:不知道。嗯……我似乎遇到了麻烦。我已经升级到了付费支持的世界:最终使用type=“text\u general”omitNorms=“true”multiValued=“true”“在schema.xml中。必须在查询中包括defType=edismax,并且必须在df和pf中指定字段。另外,由于我使用open solr,我不得不从默认模式中删除以下内容:
text
最后一个键是将字段填充为数组而不是字符串,因此值为[“一”,“二”]等。现在包括mm修饰符,效果很好。谢谢