2016-04-13 8 views
2

私はElasticsearchを初めて利用しています。ブール値フィールドを持つマッピングがあります。elasticsearchにブール値のドキュメントを見つける

{ 
    ... 

    "bool_field": { 
     "type": "boolean" 
    }, 
    ... 
} 

フィールドの名前を指定せずにブール値でドキュメントを見つける方法を教えてください。 私は、しかし、結果なしで、次のいずれかを試してみました:

{ 
    "query": { 
    "match_all": {} 
    }, 
    "filter": { 
    "query": { 
     "query_string": { 
     "query": "true" 
     } 
    } 
    } 
} 

ありがとう!

答えて

2

デフォルトでは簡単ではないので、boolean fields are not include_in_all (the _all field is used by default by query_string)です。これは、あなたのクエリがうまくいかない理由を説明します。

あなたができることは、copy_toを使用して自分でcustom _all fieldを作成し、query_stringに使用することです。このような

何か:

"bool_field": { 
     "type": "boolean", 
     "copy_to": "_all_booleans" 
    } 

そして

"query_string": { 
    "default_field": "_all_booleans", 
    "query": "true" 
} 

または

"query_string": { 
    "query": "_all_booleans:true" 
} 
+0

答えてくれてありがとうたくさん!これは私の意見では素晴らしい解決策ですが、私はelastichsearchのバージョンを指定するのを忘れていた1.6です。だから私のために残念なことにフィットしませんでした。あなたの回答が承認された複製版を発行します。 – Serg

+0

1.6で動作するはずです...特に1.6ではテストしていませんが、1.7.5では問題はありません。 –

+0

Ok、もう一度再確認します – Serg

関連する問題