これは、私がこの 1 週間ほど頭を悩ませてきた問題です。私はそれを釘付けにしたと思ったが、どうやらそうではなかった。
現在、分析されていないフィールドである「タグ」フィールドがドキュメントにあります。このフィールドでクエリを実行すると、MORE tags = query を持つドキュメントがより高いスコアを返すようになります。
例: 「ruby」のタグ フィールドをクエリするとします。
Document 1) tags: ["ruby", "ruby", "ruby"]
should score higher than:
Document 2) tags: ["ruby"]
and
Document 3) tags: ["ruby", "python"]
次のようにタグフィールドにインデックスを付けようとしました。しかし、どちらも私が望むものを達成しません。これらのすべてのインスタンスで、ドキュメント 1 が最高のスコアを獲得することはありません。
:tags => {:type => 'string', :index => 'not_analyzed', :include_in_all => false, :omit_norms => true}
:tags => {:type => 'string', :index => 'analyzed', :analyzer => keyword, :include_in_all => false, :omit_norms => true}