Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在elastic search node.js客户端中组合查询字符串和必须_Javascript_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Javascript,elasticsearch" /> elasticsearch,Javascript,elasticsearch" />

Javascript 在elastic search node.js客户端中组合查询字符串和必须

Javascript 在elastic search node.js客户端中组合查询字符串和必须,javascript,elasticsearch,Javascript,elasticsearch,我正在执行一个查询,但将“query\u string”与“bool”组合在一起,因为我希望匹配的项必须是标记数组字段,并且必须匹配一些查询,如实体。颜色:绿色,因此我希望 { body: { "query": { "bool": { "must": [{ "exists": { "field": "tags"

我正在执行一个查询,但将“query\u string”与“bool”组合在一起,因为我希望匹配的项必须是
标记
数组字段,并且必须匹配一些查询,如
实体。颜色:绿色
,因此我希望

{
    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”}相同,不是吗?基本上是的,但在某个地方我发现两者都是需要的,但考虑到这一点,我想不会。无论如何,删除匹配项并不能使其工作。请删除查询字符串。它只是其他操作(如匹配)的快捷方式。