2017-09-19 9 views
0

私はLucene.netをKentico経由で使用しています。私はフィールドで特定の価値を持つ結果を増やそうとしています。例えば:フィールド値の存在によるLuceneの検索結果のブースト

myfield:"myvalue"^2

は、残念ながら、これは、検索用語として扱われ、とにかく(tfidfなどを介して)スコアを変化させます。

値の存在に基づいて結果を強調する方法はありますが、その値を検索語として含めないでください。

更新

は、だから私は、唯一のそのフィールドにどのような方法でそのない検索値をその値を含むレコードのスコアを後押ししたいです。

私は実際に2つのインデックスを使用しているので、特定のインデックスにブーストを適用できますか?たとえば、インデックス1のアイテムは、インデックス2のアイテムよりも全体的にわずかに高いスコアを持っています

答えて

0

このフィールドを「検索条件」に追加すると、舞台裏で値に「+ルーネンは次のようにレンダリングされます。

+(myfield:"myvalue"^2) 

これはフィールドを必要とします。

スマートサーチフィルタを追加し、値をmyfield:"myValue"^2に設定してから、「条件付きフィルタ」をfalseに設定すると、これがルーンに正しく追加されてブーストされるはずですフィルタをいくつか<div style="display:none"></div>で囲んで、それを隠すだけです。

あなたの結果にポイントし、それがトリックかどうかを確認してください!

+0

私は実際にバックエンドでこのコードを実行しています。そのため、生成された正確な構文を制御できます。問題は '' myfield:myvalue '' '(ブーストなし)を含めることによってさえも、スコアリングを変えるということです。その言葉はその列にはまれなマイバリューです。私は実際には、指定されたブースト値ではないレコードを上回る値を持つため、レコードスコアを上げたいだけです。 – Sprintstar

+0

複数のブースティングを行うことができます。プライマリサーチをブースト2として設定し、ブースト0.5として設定し、必要なときに調整します。 –

+0

あなたは実際に私が必要とすることをする方法がないと言っていますか?値の存在によって結果を強調しますが、その値を検索値と同じように評価しますか? – Sprintstar

関連する問題