2016-09-30 13 views
0

私はelasticsearchを使用してアプリケーション内の一部のレコードを検索しています。elasticsearchでnull値で検索すると例外が発生する

filtered: { 
      query: { 
       query_string: { 
        query: "*#{term}*", 
        fields: ["name"] 
       } 
      }, 
      filter: { 
       bool: { 
        must: [ 
         {term: {store_id: store_id}}, 
         {match: {dealer: dealer}} 
        ] 
       } 
      } 
     } 

一部paramは存在せず、nilの値はstore_iddealerのために渡されます。私は次のエラーを出します:{"type":"query_parsing_exception","reason":"No text specified for text query" store_idまたはdealerがnilの場合、クエリに一致するすべての結果が表示されます。それはelasticsearchで可能ですか?

答えて

0

私はマッチやタームクエリーではできないと言いたいと思います。

ワイルドカード検索を有効にするためにワイルドカードまたは正規表現のクエリを使用できますが、これをアプリケーションで処理することをお勧めします。

つまり、エンドユーザーが入力「store_id」または「dealer」を入力すると、クエリのmust句に値を追加します。 そうでなければ、インデックス全体で検索されます。

関連する問題