es 当前使用版本 6.3.0
in 操作
- es 中有字段 version,type 为 keyword
"query": {
"terms": {
"version": [
"2", "3"
]
}
}
- es 中有字段 title, type 为 text,title.keyword 类型为 keyword
{
"query": {
"terms": {
"title.keyword": [
"2", "3"
]
}
}
}
查看index/_mapping
{
"properties": {
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
not in
- 说明:同上,如果是text字段只能使用 key.keyword来进行过滤
{
"query": {
"bool": {
"must_not": [
{
"terms": {
"version": [
"kgy30a",
"7IQuq3IigP2"
]
}
}
]
}
}
}
结束
- 所有的匹配都是全匹配,并不是模糊匹配
- 只适用于 keyword 及其他数字类型
- 其他说明:ElasticSearch字符串将默认被同时映射成text和keyword类型,将会自动创建下面的动态映射(dynamic mappings),如上:
这就是造成部分字段还会自动生成一个与之对应的“.keyword”字段的原因。
具体字段类型说明:
https://blog.csdn.net/qq_35958788/article/details/85250703