mongoid- elasticsearch と ElasticSearch 2.0を使用して、ネストされたフィールドに用語クエリを適用しようとしています。試行錯誤があまり報われず、この件に関するドキュメントがかなりまばらであるため、これは非常にイライラするようになりました. これが私のクエリです:
{
"query": {
"nested": {
"path": "awards",
"query": {
"bool": {
"must": [
{ "match": { "awards.year": "2010"}}
]
}
}
},
"nested":{
"path": "procuring_entity",
"query": {
"bool": {
"must": [
{ "terms": { "procuring_entity.country": ["ES", "PL"]}}
]
}
}
}
}
}
"match" と "term" は問題なく動作しますが、"terms" クエリと組み合わせると、本来あるべきだと思っても結果が返されません。私のマッピングは次のようになります。
elasticsearch!({
prefix_name: false,
index_name: 'documents',
index_options: {
mappings: {
document: {
properties: {
procuring_entity: {
type: "nested"
},
awards: {
type: "nested"
}
}
}
}
},
wrapper: :load
})
「ネストされた」がアナライザーとしてカウントされない場合 (私の知る限り、そうではありません)、問題はありません。2番目の例については、一致する値の配列が外部から取得されるため、そうではないと思います。ネストされたフィールドで用語クエリは可能ですか? 私は何か間違ったことをしていますか?ネストされたフィールドを複数の値と照合する他の方法はありますか?
どんな考えでも大歓迎です。