と仮定、ElasticSearch 5で、私はネスティングなどでデータを持っている:ElasticSearchでは、結果にネストされたドキュメントをどのようにフィルタリングしますか?
{"number":1234, "names": [
{"firstName": "John", "lastName": "Smith"},
{"firstName": "Al", "lastName": "Jones"}
]},
...
そして私は数1234のヒットを照会したいが、「lastNameの」一致のみ名を返す:そう、「ジョーンズ」私の結果は、一致しない名前を省略します。言い換えれば、用語クエリなどに基づいて、一致する文書の一部分だけを返信したいと思っています。
単純なネストされたクエリは、トップレベルの結果をフィルタリングするため、実行しません。何か案は?
{ "query" : { "bool": { "filter":[
{ "term": { "number":1234} },
???? something with "lastName": "Jones" ????
] } } }
私は戻ってほしい: - これはまったく同じ文書あなたにある
hits: [
{"number":1234, "names": [
{"firstName": "Al", "lastName": "Jones"}
]},
...
]
2番目の回答は、必要なものを手に入れるでしょうか? – Val
目的に合った良い解決策を見つけましたか?あなたが下にコメントしたので、受け入れられた答えは解決しないようです。ネストされたオブジェクトに対しても全く同じフィルタリングが必要ですが、これらの内部ヒットは別々に返され、ネストされたオブジェクトリスト全体も返されます。ネストされたオブジェクトでは不可能なのでしょうか?親子になったのですか?私の質問もここで見てください。https://stackoverflow.com/questions/48750696/how-to-filter-nested-objects-on-a-should-query – batmaci
私は欲しかったものを正確に見つけられませんでした。もし私が弾力性を担当していたなら、おそらくこの機能を追加するでしょう! –