2017-06-29 3 views
0

私はchocolate_typeというフィールドを持っています。 4種類のチョコレートタイプ( "ダーク"、 "ホワイト"、 "ミルク"、 "スイート")があります。チョコレートの種類に基づいて特定の順序で文書を並べ替えたいチョコレートの種類を昇順または降順にソートしたくありません。代わりに、私は白が最初のもの、暗いもの、ミルクのものが3番目、甘いものが4番目のものを選びます。ここに文書がソート方法の例です:複数のフィールド値を並べ替える方法は?

ID:5、

chocolate_type: "ホワイト"

ID:8、

chocolate_type: "ホワイト"

id:15,

チョコレートタイプ:「ダーク」

番号:18、

chocolate_type: "暗"

番号:24、

chocolate_type: "暗"

。 。 。

どうすればこのようなクエリを作成できますか?

答えて

0

私は2つの解決策を考えることができます:

  • は、あなたの文書にいくつかのソートフィールドを追加するには、チョコレートの種類に対応した数だけインデックスされるが、それにソートして所望の順序を達成します

  • スクリプトの種類 - これはドキュメントを変更することなく動作します。利点は、再索引付けを行わずにソート順を変更できることです(最初の解決策ではそうではありません)が、パフォーマンスは悪化する可能性があります。 1、白 - - 2、ミルク - だから、1つの新しいフィールドため、データベース内をし、あなたの値に応じて設定された順序番号を取るhttps://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html#_script_based_sorting

0

を参照してくださいダーク手段3、甘い-4 、その後を行います注文はです。 あなたに役立つかどうか教えてください。

関連する問題