我想进行类似的查询 - 获取包含/不包含给定字段的“某些值”的所有文档
- 获取给定字段的值等于/不等于“某个值”的所有文档。
根据我的映射,字段是字符串类型,这意味着它们支持关键字和全文搜索,例如:
"myField" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
我最初使用正则表达式匹配(此查询用于不匹配):
"bool": {
"must":[
{
"regexp": {
"myField.keyword": {
"value": "~(some value)",
"flags": "ALL"
}
}
}
]
}
所以,基本上~(word)
因为不,.*word.*
对于包含和~(.*word.*)
因为不包含。
但是,然后也遇到了“must_not”布尔查询,所以我知道我还可以为不等于情况子句添加“must_not”以及“must”和“should”子句(用于其他字段之间的布尔 AND 和 OR) )在我更大的布尔查询中,但仍然不确定包含和不包含搜索,有人可以明确解释一下,就返回结果集的性能和准确性而言,这里的最佳实践是什么。
使用的 ElasticSearch 版本 - 目前从 v 6.3 过渡到 v 7.1.1
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)