【发布时间】:2021-01-05 01:09:49
【问题描述】:
在下面的过滤器查询中,它会找到包含任何提到的术语的文档。但我正在寻找只匹配所有条款的记录。 my_languages 是我索引中的一个数组字段。有什么简单的方法吗?我可以单独添加术语过滤器并且可以做到,但是我可以将任何简单的“添加”条件应用于这些术语。谢谢你
GET user_info/_search?pretty
{
"size": 30,
"from": 0,
"query": {
"bool": {
"filter": [
{
"terms": {
"my_languages": [
8728431,
872854,
872845
]
}
}
]
}
}
}
映射
PUT user_info
{
"settings": {
"number_of_shards": 1,
"max_ngram_diff": 35
},
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
"email": {
"type": "text"
},
"my_languages": {
"type": "keyword"
},
"updated_by": {
"type": "keyword"
}
}
}
}
测试数据
POST /user_info/_doc/
{
"id": 10,
"email": 2020,
"my_languages": [
8728431,
872854,
872845
]
}
【问题讨论】:
标签: elasticsearch