私は solr を使用してドキュメントを検索し、1 つのフィールドで一致させてから、他のフィールドに表示されるキーワードに基づいてブーストしたいと考えています。
元。
<str name="qf">
name^1
</str>
<str name="pf">
keywords1^2
keywords2^1.2
description^0.2
</str>
だから私が検索すると
q=foo+bar
そして私は結果を持っています
name = "This is a foo bar"
keywords1 = "bar"
keywords2 = "foo cats dogs chicken"
description = "There is a foo in here with a bar"
クエリは、キーワード 1 とキーワード 2 からではなく、説明からブーストされます。これは、pf が "foo" "bar" ではなく "foo bar" (フレーズ slop) をキーワード 1 で検索するためだとわかっています。個々の単語に基づいてブーストしたいと思います。これはプラグインなしで可能ですか?
私が考えたこと:
pf2 や pf3 などのオプションは認識していますが、基本的に探しているのは pf1 です。一言で盛り上がれるようになりたいです。
キーワード 1 とキーワード 2 を qf に追加しない理由は、それらを一致させたくないからです。キーワード 2 には、ドキュメントとは関係のない用語がいくつか含まれています。
クエリ時にクエリを分割して bq を使用できます
bq = keywords1:foo OR keywords1:bar etc...
しかし、異なるフィールドに異なる重みを割り当てたいのですが、クエリを作成するのは面倒です。
要約すると、pf1 のようなパラメーターが必要です。