10

クエリが以前に特定のフィールドに一致したドキュメントのスコアを上げるにはどうすればよいですか? たとえば、「スーパーマン」を検索すると、「スーパーマン リターンズ」は「スーパーマンがいる」よりも高いスコアを与えるはずです。これは可能ですか?

4

2 に答える 2

2

これについてオンラインでたくさん読んだ後、自分で解決しました。特に私を助けたのは、次のようなnabbleの返信でした(dismaxを使用したため、ここで説明しています):

  • 値を次のように保存する、say 'nameString' という名前の別のフィールドを作成します。"_START_ <actual data>"
  • 検索クエリを次のように変更します"_START_ <actual query>"
  • nameStringクエリ フィールド パラメータ (qf) で検索するフィールドの 1 つとして新しいフィールドを追加します。
  • 検索中、パラメーター pf (フレーズ フィールド) を新しいフィールドとして使用nameStringし、フレーズ スロップ 1 または 2 を指定します (値が小さいほど、より厳密な検索が行われます)。

最終的なクエリ パラメータは次のようになります。

q=_START_ <actual query>
defType=dismax
qf=name nameString /* look in name field as well as nameString field */
pf=nameString /* phrase field in nameString */
ps=2 /* phrase slop */
于 2012-08-22T18:32:20.000 に答える
2

オプションをチェック @任期付きランキング

于 2012-08-22T18:32:21.140 に答える