2016-10-15 7 views
1

私はhttps://github.com/sleimanx2/plasticでLaravel 5.2を使用しており、job_adsというテーブルを持っています。 job_ads表には、時にはヌル型の列があります。私は、ヌルのタイプを持つすべてのjob_adsを検索したいが、私はPHPの職人いじくり経由プラスチック/弾性検索 - ヌル値を持つエントリを検索

App\JobAd::search()->term('type', null)->sortBy("id", "ASC")->get()->totalHits(); 

をしようとした場合、私は

Elasticsearch\Common\Exceptions\BadRequest400Exception with message 'query_parsing_exception: No value specified for term query' 

を取得し、私はelasticsearch文書を見ていたが、私は表示されません私の間違い。私はelasticsearch 2.4を使用しています。

答えて

1

exists queryの中には使用しないでください。基本的には、null値を検索するmissing query(2.2.0で廃止予定)です。次のクエリにお試しください。

{ 
    "query": { 
    "bool": { 
     "must_not": { 
     "exists": { 
      "field": "type" 
     } 
     } 
    } 
    } 
} 

私はプラスチックを使用していないが、変換が容易であるべきです。 documentationから次のようなクエリになります。

App\JobAd::search()->mustNot()->exists('type')->sortBy("id", "ASC")->get()->totalHits(); 

希望すると助かります!

+0

私は不足しているクエリについて読んでいたので、正しいトラックにありました:)あなたのコードはうまくいきました。 –

+0

うれしい私は助けることができました! – ChintanShah25