是否有可能在solr中进行这种查询

时间:2013-03-25 11:00:04

标签: solr

我在solr - type字符串中找到了一个列,其中的值类似于' JOHN JACKON',' JAKE SMITH' JOHNATAN JAMESON'

当我输入J以获得第一个记录时,有可能告诉solr这个记录的J比另一个记录多J倍。

1 个答案:

答案 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是索引的两倍。