私はLucene.netをKentico経由で使用しています。私はフィールドで特定の価値を持つ結果を増やそうとしています。例えば:フィールド値の存在によるLuceneの検索結果のブースト
myfield:"myvalue"^2
は、残念ながら、これは、検索用語として扱われ、とにかく(tf
とidf
などを介して)スコアを変化させます。
値の存在に基づいて結果を強調する方法はありますが、その値を検索語として含めないでください。
更新
は、だから私は、唯一のそのフィールドにどのような方法でそのない検索値をその値を含むレコードのスコアを後押ししたいです。
私は実際に2つのインデックスを使用しているので、特定のインデックスにブーストを適用できますか?たとえば、インデックス1のアイテムは、インデックス2のアイテムよりも全体的にわずかに高いスコアを持っています
私は実際にバックエンドでこのコードを実行しています。そのため、生成された正確な構文を制御できます。問題は '' myfield:myvalue '' '(ブーストなし)を含めることによってさえも、スコアリングを変えるということです。その言葉はその列にはまれなマイバリューです。私は実際には、指定されたブースト値ではないレコードを上回る値を持つため、レコードスコアを上げたいだけです。 – Sprintstar
複数のブースティングを行うことができます。プライマリサーチをブースト2として設定し、ブースト0.5として設定し、必要なときに調整します。 –
あなたは実際に私が必要とすることをする方法がないと言っていますか?値の存在によって結果を強調しますが、その値を検索値と同じように評価しますか? – Sprintstar