我在solr - type字符串中找到了一个列,其中的值类似于' JOHN JACKON',' JAKE SMITH' JOHNATAN JAMESON'
当我输入J以获得第一个记录时,有可能告诉solr这个记录的J比另一个记录多J倍。
答案 0 :(得分:0)
您可以使用solr.EdgeNGramFilterFactory。您可以将minGramSize设置为1。
此FilterFactory在查询时间内匹配索引中特定术语的前缀子串(或后缀子串,如果side =“back”)非常有用。
参考:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.EdgeNGramFilterFactory
所以对于上面的例子,
对于JOHN JACKSON,它将存储:
J,JO,JOH,JOHN,J,JA,JAC,JACK,JACKS,JACKSON
和JAKE SMITH:
j,JA,JAK,JAKE,S,SM,SMI,SMIT,SMITH
现在当有人搜索J时,第一个文件(约翰杰克逊)会得到更高的分数,因为J是索引的两倍。