我对Elastic Search查询完全陌生,需要帮助。
我有一个包含4个字段的产品索引,比如diameter
,brand
,price
,month
。
我需要将所有带有diameter = 13
的产品与所有带有brand = brandino
的产品(没有重复项)与所有带有price
范围的100 to 1000
的产品合并。并过滤出条件为month != 10
的产品。
在这种情况下,我的查询应如何显示?
答案 0 :(得分:0)
用于1个字段搜索的简单查询,例如:
"query": {
"match": {
"brand": "brandino"
}
}
在您的情况下,您需要一个查询多个字段的查询,因此;您应该使用bool,例如:
"query": {
"bool": {
"must": [
{
"match" :{
"diameter": 13
}
},
{
"match" :{
"brand": "brandino"
}
},
{
"range" :{
"price": {
"gte": 100,
"lte": 1000
}
}
}
]
}
}
详细了解:
此外,您应注意text
之类的字段:brand
可能被映射为keyword,这意味着您需要编写如下查询:
"brand.keyword": "brandino"