0

「JOHN JACKON」、「JAKE SMITH」、「JOHNATAN JAMESON」などの値を持つ solr - type string の列を取得しました。

J を入力すると、J が他のレコードよりも多く含まれているこれらのレコードを最初に取得するときに、solr に通知できますか?

4

1 に答える 1

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 がインデックスに 2 回含まれているため、最初のドキュメント (ジョン ジャクソン) のスコアが高くなります。

于 2013-03-26T00:39:24.990 に答える