繁体   English   中英

SOLR:对带空格的文本字段进行模糊搜索

[英]SOLR: Fuzzy search on a text field with spaces

这是我的问题:我有一个由SOLR索引的文本字段,它是数据库中的用户名。 我希望搜索内容模糊而不是完全匹配。 例如; 如果用户名是“ krishnarayaprolu”,并且我搜索拼写错误“ krishnIrayaprolu”,它仍应返回记录。

这对我来说很好用,除非用户名中有空格。 因此,用户名“ krishna rayaprolu”和搜索字符串“ krishnI rayaprolu〜0.5”不会返回记录。 如果拼写错误以“ krishna rayaprolI〜0.5”结尾,则返回正常。 有任何想法吗?

对于我的配置,我尝试了WhiteSpaceTokenizerFactory和StandardTokenizerFactory。 在搜索方面,我尝试使用引号并转义空格。 他们都没有解决我的空间和模糊性问题。 我正在使用管理界面进行搜索。 感谢任何指针。

我有解决您的问题的方法,只需要在架构中添加一些字段即可。

创建新的ngram字段,然后在ngram字段中复制所有标题名称。

当您对拼写错误的单词进行任何查询时,您得到的结果为空,然后拆分单词并再次触发相同的查询,您将获得预期的结果。

Example : Suppose user searching for word "krishna rayaprolu" but type it as "krishnI rayaprolu~0.5", then 
create query in below way you will get results as expected hopefully.

**(ngram:"krishnI rayaprolu~0.5" OR ngram:"kri" OR  ngram:"kris" OR ngram:"krish" OR ngram:"krishn" OR ngram:"krishnI" OR ngram:"ray" OR ngram:"raya" OR ngram:"rayap" ..... )**

我们已经按词顺序对单词进行了拆分,并对字段ngram进行了查询。

希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM