如何在子对象字段中对ElasticSearch进行过滤搜索?例如,我的文档有一个id
和一个data
字段,它是一个JSON数组,表示数据在数据库中的存储方式:
{_id: 000, merchant: "merchant_1", email: "hello@email.com"}
我的搜索查询:
"query": {
"filtered": {
"filter": { "term": { "data.merchant": "merchant_1"} },
"query": {
"query_string": {"query": "hello"} }
}
}
}
不会返回任何内容,但只使用query_string hello
进行查询会返回正确的行。正在更改"data.merchant"
=> "merchant"
也不会改变任何内容。
我在这里做错了吗?
更新:我最后只使用了一个布尔查询,该工作正常运行。
答案 0 :(得分:0)
"query": {
"filtered": {
"filter": { "term": { "data.merchant": "merchant_1"} },
"query": {
"query_string": {
"default_field": "_all",
"query": "hello"
}
}
}
}
这适用于您的情况。