2017-02-24 17 views
0

フィールド 'open_location'が含まれていないすべての結果を検索しようとしています。私は以下のコードを使用しています。しかし、それは私に印刷結果のエラーを与える。エラーが parsing_exception、次のとおりです。...いいえ[クエリ] [フィルタ]parsing_exception:[フィルタリング]の[クエリ]が登録されていません

私は私の解決策のためにこの質問を見てきました、 Best way to check if a field exist in an Elasticsearch document しかし

に登録さが私を助けてください

$index_name=$db_name.'_temp_traking'; 

    $para= [ 
     'index' => $index_name, 
     'type' => $index_name, 
     'body' => [ 
      'query' => [ 
       'filtered' => [ 
        'filter' => [ 
         'bool' => [ 
          'must_not' => [ 
           'missing' => [ 
            'field' => 'open_location' 
           ] 
          ] 
         ] 
        ] 
       ] 
      ] 
     ] 
    ]; 
    $response = $client->search($para); 
+0

使用している弾性のどのバージョン? – paqash

+0

エラスティックバージョン5 – Avishake

+0

あなたはそれを動作させましたか? – paqash

答えて

1

フィルタリングされたクエリは廃止され、Elastic 5で削除されました。使用していると思います。また、フィールドが含まれていないドキュメントを探していますが、コードに「欠落してはいけません」と書かれているとします。あなたが存在しないフィールドが必要な場合は

、これを試してみてください。

"query": { 
     "bool": { 
      "must_not": { 
       "exists": { 
        "field": "open_location" 
       } 
      } 
     } 
    } 
関連する問題