2016-08-29 4 views
0

たとえば、私はageの属性を持つ人のリストを持っています。私の検索ページで
は、私は、ユーザーが年齢の範囲に、このリストのベースを照会することができます:ElasticSearchは数値フィールドのクエリの範囲を提案できますか?

"mus" : { 
    "range" : { 
     "age" : { "from" : 60, "to" : 80 } 
    } 
}, 

が行う、(私のリスト以来、20〜50人だけが含まれる)上記のクエリの戻り0結果を言ってみましょうESはこの範囲のクエリ(この場合は[20、50])の提案を返すメソッドをサポートしていますか?

答えて

0

はい、これらのカウントを取得するには、histogramアグリゲーションを使用できます。

{ 
    "post_filter": { 
    "bool": { 
     "must": { 
     "range": { 
      "age": { 
      "from": 60, 
      "to": 80 
      } 
     } 
     } 
    } 
    }, 
    "aggs": { 
    "ages": { 
     "histogram": { 
     "field": "age", 
     "interval": 10 
     } 
    } 
    } 
} 

上記のクエリは返します:

  • を持つageフィールドageフィールド10年のバケット内にある文書の
  • 60〜80の数であるすべての文書、
      すなわち
    • 10歳から20歳までの間の書類(偽の番号)
    • 年齢のベット2つの文書(偽数)
    • ...
    • :40と50の間の年齢のための12枚の文書(偽数)
    • :30と40の間の年齢のための6つのドキュメント(偽数)
    • :20と30をWEEN
+0

ありがとうございます!これは完璧な答えです!!! – nvcnvn

+0

素晴らしいです、それは助けました! – Val