0

特定のテキスト検索がある場合に備えて、少数の文書を増やす必要がある現状のシナリオに取り組んでいます。 このシナリオでは、特定のキーワードに基づいて用語クエリを実行する必要があるドキュメントセットがありますが、ここではキャッチがあります。キーワードテストを検索して100個のレコードを取得するとしますが、その要件には、加重やその他の基準に関係なく、常に最上位の結果になる必要があるという要件があります。これを達成するにはどうすればよいでしょうか?Elasticsearchです。提案やアイディアは大歓迎です。Elasticsearchでスコアフィールドを手動で操作するにはどうすればよいですか

+0

:これは、Groovyのを使用した例である https://www.elastic.co/guide/en/elasticsearch/guide/current/script-score.html

:を見てみましょう擬似コードでは、

price = doc['price'].value margin = doc['margin'].value if (price < threshold) { return price * margin/target } return price * (1 - discount) * margin/target 

だから、のようなものになるでしょうインデックス時にフィールドを使用してフィールドをマークし、そのフィールドを検索クエリに含めることができます。代わりに、あなたが検索時にいくつかの識別子を持っている場合は、それをクエリに含めてください。 – Henrik

+0

あなたはあなたが持っているものとあなたが期待している結果の簡単な例を挙げることができますか? – jay

+0

@jay "test"キーワードで用語クエリを実行すると、1000 docが返されるとします。 idが1、2、3、4の4つのドキュメントがあるとします。だから私が望むのは、テストキーワードを使って用語クエリを実行するたびに、これらの4つのドキュメントが上位4つのコンテンツとしてトップの結果に表示されるはずです。私はあなたの質問をクリアしました。 –

答えて

1

スクリプトとの関連性を制御できます。あなたはブーストに文書いるわかっている場合

if (word == 'test') { 
    return score * n 
} 
return score 
関連する問題