我有一个要求,我只需要返回那些注释不以字符串开头的记录。 PFB查询和这种方法不起作用。需要帮助
{
"size": 0,
"fields": ["id","comment"],
"query": {
"bool": {
"must_not": [
{
"wildcard": {
"comment":
"AG//*"
}
}
]
}
}
}
答案 0 :(得分:0)
首先,您应该从查询中删除"size": 0
(或设置所需的大小)以查看结果。
现在,在elasticsearch中实施'以开头'的最佳方法是使用Prefix Query,如下所示:
{
"fields": ["id", "comment"],
"query": {
"bool": {
"must_not": [
{
"prefix": {
"comment": "AG" <-- No need for any wildcards
}
}
]
}
}
}
注意:前缀查询和通配符查询仅对 not_analyzed 字段有意义,因此请确保您的"comment"
字段具有相同的映射。