Elasticsearch 查询语法
Elasticsearch query syntax
我有一个映射如下的索引
"mappings": {
"properties": {
"name": {
"type": "text"
},
"id": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"attributes": {
"dynamic": true,
"properties": {
"subjects": {
"type": "integer"
},
"occupation": {
"type": "integer"
}
}
现在我想获取所有职业 =4 且名称不像 'Test' 和 is_active = True 的文档
我写了以下内容以获取所有带有 is_active=True 和职业 4 的文档,但我不确定如何过滤掉名称包含 'test'
的文档
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"terms": {
"audience_attributes.occupation": [
4
]
}
}
]
}
},
{
"terms": {
"is_active": [
true
]
}
}
]
}
}
}
我正在使用 Elasticsearch 7.9
我想我明白了
{
"query": {
"bool": {
"must_not": {
"wildcard": {
"name": {
"value": "*TEST*"
}
}
},
"must": [
{
"bool": {
"should": [
{
"terms": {
"audience_attributes.occupation": [
4
]
}
}
]
}
},
{
"terms": {
"is_active": [
true
]
}
}
]
}
}
}
我有一个映射如下的索引
"mappings": {
"properties": {
"name": {
"type": "text"
},
"id": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"attributes": {
"dynamic": true,
"properties": {
"subjects": {
"type": "integer"
},
"occupation": {
"type": "integer"
}
}
现在我想获取所有职业 =4 且名称不像 'Test' 和 is_active = True 的文档 我写了以下内容以获取所有带有 is_active=True 和职业 4 的文档,但我不确定如何过滤掉名称包含 'test'
的文档{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"terms": {
"audience_attributes.occupation": [
4
]
}
}
]
}
},
{
"terms": {
"is_active": [
true
]
}
}
]
}
}
}
我正在使用 Elasticsearch 7.9
我想我明白了
{
"query": {
"bool": {
"must_not": {
"wildcard": {
"name": {
"value": "*TEST*"
}
}
},
"must": [
{
"bool": {
"should": [
{
"terms": {
"audience_attributes.occupation": [
4
]
}
}
]
}
},
{
"terms": {
"is_active": [
true
]
}
}
]
}
}
}