我要匹配同一子{ sale: true, name: "book1" }
中的两个字段,但是ES给出所有单独的匹配数据,这是文档:
[
{
"store": "storeA",
"books": [
{ // should only matched
"sale": true,
"name": "book1",
"price": 2,
},
]
},
{
"store": "storeB",
"books": [
{
"sale": false,
"name": "book1",
"price": 2,
},
{
"sale": true,
"name": "book2",
"price": 3,
},
]
}
]
这是查询,结果只能是一个storeA
,但有两个存储。
{
"query": {
"bool": {
"must": [
{ "match": { sale: true } },
{ "match": { name: "book1" } }
]
}
}
}
任何人都可以给我一些建议吗?
抱歉,books
字段不是nested
类型,我无法更改该映射类型。
答案 0 :(得分:1)
您可以将其用于聚合,如下所示:
HttpContext.Current.Request.Cookies[CookieName];
希望这可以为您提供帮助。或者,您可以参考:
答案 1 :(得分:1)
如果您拥有name
类型的keyword
,则可以使用下面的script query。
如果您的文本和您没有其关键字twin(name.keyword
),那么恐怕您需要引入其{{1 }}以使下面的查询起作用。 (映射更改)
对于现有的keyword
字段,您也可以使用"fielddata":true
,但首先不建议这样做,然后再次需要更新映射。
book
让我知道是否有帮助!