2016-04-11 4 views
0

elasticsearchで何らかのネストされたソート/サイズを実行することはできますか?私はクエリのすべての結果を見つけようとしています(スコアでソートされていますので、ベストマッチが最初です)、出力を200個の結果に制限し、ソート/ページングを適用します。ソート前の弾性サーチサイズ

例:ユーザーが商品を検索しています。検索では10,000の一致する商品が見つかりますが、スコアが異なる(非常に幅広い検索を使用していますので、常に多くの結果が得られます)。私たちは、200の最もマッチするエントリを取って、ユーザ定義のソート(例えば、ユーザはカテゴリごとに結果をソートしたいかもしれない)を適用し、10の結果/ページを有するリストとして表示する。

だから基本的に私は、次の操作を行う必要があります。

1. Perform search for product named "abc" 
2. Sort results by score 
3. Take first 200 results 
4. Sort these 200 results by category 
5. Take first 10 results to display them on first page 

答えて

0

rescoringはあなたが説明してきた正確に何をしますように思えます。

+0

返信いただきありがとうございます! rescoringは並べ替えに使用できないようです。私は、[記事を](http://elasticsearchserverbook.com/elasticsearchserverbook.com/elasticsearch-0-90-using-rescore/)を見つけました。「時々、ページ上の最初の文書の順序が追加ルールの影響を受けます。残念ながら、これはレスコア機能によっては達成できません。 ' – emsi

+0

@emsiはい、カテゴリごとに結果を再スコアすることができます。カテゴリ別に並べ替えるのと同じ結果が得られます。 – DrTyrsa

関連する問題