0

我在 solr 中有一个列 - 类型字符串,其值类似于“JOHN JACKON”、“JAKE SMITH”、“JOHNATAN JAMESON”

是否有可能告诉 solr 当我输入 J 时首先获得这些 J 次比另一个多的记录。

4

1 回答 1

0

您可以使用 solr.EdgeNGramFilterFactory。您可以将 minGramSize 设置为 1。

此 FilterFactory 在查询期间匹配索引中特定术语的前缀子字符串(或后缀子字符串,如果 side="back")非常有用。

参考:http ://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.EdgeNGramFilterFactory

所以对于你上面的例子,

对于 JOHN JACKSON,它将存储:

J,乔,约翰,约翰,J,JA,江淮,杰克,杰克,杰克逊

对于杰克史密斯:

j, JA, JAK, 杰克, S, SM, SMI, SMIT, 史密斯

现在当有人搜索 J 时,第一个文档(john jackson)将获得更高的分数,因为 J 在索引中是两倍。

于 2013-03-26T00:39:24.990 回答