我有一个值列表,我希望在product_code
字段中包含任何这些值的所有文档。
我尝试了这个,但即使它没有出错,它也只给了我一个文件:
"query": {
"match": {
"product_code": {
"query": ["ABC 4", "ABC 5"]
}
}
}
所以我基本上都在寻找terms
过滤器的功能,但需要进行分析。
我当然能做到:
"bool": {
"should": [
{
"query": {
"match": {
"product_code": "ABC 4"
}
}
},
{
"query": {
"match": {
"product_code": "ABC 5"
}
}
}
]
}
但是对于长列表而言,这会变得相当冗长。
product_code
的定义如下:
"product_code": {
"type": "string",
"analyzer": "product_code",
}
使用 product_code 分析器:
"product_code": {
"type": "custom",
"filter": [
"lowercase",
"trim"
],
"tokenizer": "keyword"
}
答案 0 :(得分:1)
terms
AFAIK的match
查询等效。另一种选择是query_string
,它不那么详细:
{
"query": {
"query_string": {
"default_field": "product_code",
"query": "\"ABC 4\" OR \"ABC 5\""
}
}
}
答案 1 :(得分:0)
我可能会遗漏一些东西,但是怎么样:
{
"constant_score" : {
"filter" : {
"terms" : { "product_code" : ["ABC 4", "ABC 5"]}
}
}
}
这可能是您正在寻找的吗?