2017-02-13 23 views
0

私はelasticsearch 1.5.2を使用しています。私は "アレルギー"といくつかの他のフィールドは、このフィールドがないという名前のフィールドを持ついくつかの製品を保存しました。このフィールドの値は、魚や牛乳やナッツなどになります。私はクエリを作成し、結果として "アレルギー"と呼ばれるこのフィールドを全く持たない製品のみを取得し、これを他のアグリゲーションに統合したいクエリ。私はちょうど1つのクエリを作成したい:最初に "アレルギー"フィールドを持っている製品を削除し、2番目のブロックの集計クエリを実行します。あなたが集計呼び出しの前に、クエリの一部を追加する必要が弾性検索フィルタークエリ

POST tes1/_search?search_type=count 
{ 
    "aggs" : { 
     "fruits" : { 
      "filter" : { 
       "query":{ 
       "query_string": { 
        "query": "Fruits", 
        "fields": [ 
         "category" 
        ] 
       } 
      }}, 
      "aggs" : { 
       "minprice": { 
        "top_hits": { 
         "sort": [ 
          { 
           "prix en €/kg": { 
            "order": "asc" 
           } 
          } 
         ], "size":400 
        } 
       } 
      } 
    }} } 

答えて

0

:この集計クエリに

{ 
    "constant_score" : { 
     "filter" : { 
      "missing" : { "field" : "allergic" } 
     } 
    } 
} 

:どのようにこれを統合する

。結果をフィルタリングし、結果セットで集計を実行します。サイドノートでは

POST tes1/_search 
{ 
    "_source": false, 
    "size": 1000, 
     "query": 
      { "constant_score" : { 
        "filter" : { 
         "missing" : { "field" : "allergic" } 
        } 
       } 
      }, 
    "aggs" : { 
     "fruits" : { 
      "filter" : { 
       "query":{ 
       "query_string": { 
        "query": "Fruits", 
        "fields": [ 
         "category" 
        ] 
       } 
      }}, 
      "aggs" : { 
       "minprice": { 
        "top_hits": { 
         "sort": [ 
          { 
           "prix en €/kg": { 
            "order": "asc" 
           } 
          } 
         ], "size":400 
        } 
       } 
      } 
    }} } 

1.1がサポートされなくなったとして、最新バージョンにElasticSearchのアップグレードを検討していないしてください。

+0

もう一度質問をお読みください。私はそれを編集して、印刷された質問を追加します。ありがとうございました。 –

+0

ところで、私はこの試み入れ: POSTのTEST1/_search { "constant_score":{ "フィルタ":{ が "欠落":{ "フィールド": "アレルギー"} } } } を と私はエラーがあった –

+0

私の答えを変更しました。上記のクエリを実行してみてください。 – NutcaseDeveloper