Javascript 在elastic search node.js客户端中组合查询字符串和必须
我正在执行一个查询,但将“query\u string”与“bool”组合在一起,因为我希望匹配的项必须是Javascript 在elastic search node.js客户端中组合查询字符串和必须,javascript,
elasticsearch,Javascript,
elasticsearch,我正在执行一个查询,但将“query\u string”与“bool”组合在一起,因为我希望匹配的项必须是标记数组字段,并且必须匹配一些查询,如实体。颜色:绿色,因此我希望 { body: { "query": { "bool": { "must": [{ "exists": { "field": "tags"
标记
数组字段,并且必须匹配一些查询,如实体。颜色:绿色
,因此我希望
{
body: {
"query": {
"bool": {
"must": [{
"exists": {
"field": "tags"
}
},
{
"query_string": {
"query": "entity.color:green"
}
},
{
"match": {
"entity.color": "green"
}
}
],
"must_not": [{
"term": {
"tags": ""
}
},
{
"term": {
"tags": "[]"
}
}
]
}
}
},
size: 10,
index: myIndex
}
但我没有得到任何结果。没有query\u字符串的查询
返回筛选的正确项,但添加时返回否。
我正在运行15.2.0的最新版本
我也尝试过嵌套的bool/must
方法,但它不起作用
{
"bool": {
"must": [{
"exists": {
"field": "tags"
}
},
{
"bool": {
"must": [{
"query_string": {
"query": "entity.color:green"
}
},
{
"match": {
"entity.color": "green"
}
}
]
}
}
],
"must_not": [{
"term": {
"tags": ""
}
},
{
"term": {
"tags": "[]"
}
}
]
}
}
尝试像这样编写查询字符串 查询字符串:{ 字段:“颜色”, 问题:“绿色”
}
“match”:{“entity.color”:“green”}
将与{code>“query\u string”:{“query”:“entity.color:green”}相同,不是吗?基本上是的,但在某个地方我发现两者都是需要的,但考虑到这一点,我想不会。无论如何,删除匹配项并不能使其工作。请删除查询字符串。它只是其他操作(如匹配)的快捷方式。