SOLR:对带空格的文本字段进行模糊搜索
SOLR: Fuzzy search on a text field with spaces
这是我的问题:我有一个由 SOLR 索引的文本字段,它是我们数据库中的用户名。我希望搜索是模糊的而不是完全匹配。例如;如果用户名是 "krishnarayaprolu" 而我搜索拼写错误 "krishnIrayaprolu",它应该仍然是 return 记录。
这对我来说工作正常,除非用户名中有 space。所以用户名:"krishna rayaprolu" 和搜索字符串 "krishnI rayaprolu~0.5" 不是 returning 记录。如果拼写错误像 "krishna rayaprolI~0.5" 一样在末尾,则 return 没问题。有什么想法吗?
对于我的配置,我尝试了 WhiteSpaceTokenizerFactory 和 StandardTokenizerFactory。在搜索方面,我尝试了引号和转义 space。 None 他们帮助解决了我的 space+ 模糊问题。我正在使用管理界面进行搜索。感谢任何指点。
我有你的问题的解决方案,只需要在你的模式中添加一些字段。
创建新的 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" ..... )**
We have split the word sequence wise and fire query on field ngram.
Hope it will help you.
这是我的问题:我有一个由 SOLR 索引的文本字段,它是我们数据库中的用户名。我希望搜索是模糊的而不是完全匹配。例如;如果用户名是 "krishnarayaprolu" 而我搜索拼写错误 "krishnIrayaprolu",它应该仍然是 return 记录。
这对我来说工作正常,除非用户名中有 space。所以用户名:"krishna rayaprolu" 和搜索字符串 "krishnI rayaprolu~0.5" 不是 returning 记录。如果拼写错误像 "krishna rayaprolI~0.5" 一样在末尾,则 return 没问题。有什么想法吗?
对于我的配置,我尝试了 WhiteSpaceTokenizerFactory 和 StandardTokenizerFactory。在搜索方面,我尝试了引号和转义 space。 None 他们帮助解决了我的 space+ 模糊问题。我正在使用管理界面进行搜索。感谢任何指点。
我有你的问题的解决方案,只需要在你的模式中添加一些字段。
创建新的 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" ..... )**
We have split the word sequence wise and fire query on field ngram.
Hope it will help you.