【发布时间】:2018-06-14 20:28:04
【问题描述】:
这是我的问题:我有一个由 SOLR 索引的文本字段,它是我们数据库中的用户名。我希望搜索模糊而不是完全匹配。例如;如果用户名是“krishnarayaprolu”并且我搜索时出现拼写错误“krishnIrayaprolu”,它仍应返回记录。
这对我来说很好,除非用户名中有空格。因此,用户名:“krishna rayaprolu”和搜索字符串“krishnI rayaprolu~0.5”不会返回记录。如果拼写错误以“krishna rayaprolI~0.5”结尾,则返回正常。有什么想法吗?
对于我的配置,我尝试了 WhiteSpaceTokenizerFactory 和 StandardTokenizerFactory。在搜索方面,我尝试了引号和转义空间。他们都没有帮助解决我的空间+模糊问题。我正在使用管理界面进行搜索。感谢任何指针。
【问题讨论】:
-
您可以发布您的 solr 架构的相关部分吗?如在用户名的字段定义中
-
<field name="username" type="text_general" indexed="true" stored="true" multiValued="true"/> <fieldType name="text_general" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> </analyzer> </fieldType>