elasticsearch Elasticsearch筛选多个字段
我在elasticsearch中索引了以下数据集elasticsearch Elasticsearch筛选多个字段,elasticsearch,elasticsearch,我在elasticsearch中索引了以下数据集 { "title": "Professor", "class": [6001, 6015, 6018], "subject": [5010, 5012, 5013], "salary": 12500 } { "title": "Professor", "class": [6012, 6013, 6014], "subject": [5010, 5005, 5004], "salary": 16600 } { "title": "Princip
{
"title": "Professor",
"class": [6001, 6015, 6018],
"subject": [5010, 5012, 5013],
"salary": 12500
}
{
"title": "Professor",
"class": [6012, 6013, 6014],
"subject": [5010, 5005, 5004],
"salary": 16600
}
{
"title": "Principal",
"class": [7001, 7010, 6018],
"subject": [5010, 5012, 5013],
"salary": 14750
}
{
"title": "Asst Professor",
"class": [6012, 6013, 6014],
"subject": [5010, 5005, 5004],
"salary": 16600
}
我在找
等级-6001或6018或6013
及
主题-5013或5004
及
工资(范围)-12000至15000
我正在使用下面的查询
{
"query" : {
"filtered" : {
"filter" : {
"bool" : {
"must" : [
{ "term" : {"class" : [6001, 6018, 6013]}},
{ "term" : {"subject" : [5013, 5004]}},
{"range" : {"salary" : {"gte": 12000,"lte": 15000}}}
]
}}}}}
但是我没有得到我期望的结果,这有什么不对?你需要使用术语过滤器而不是术语过滤器 根据文件: 术语过滤器:过滤具有包含术语的字段的文档 Terms Filter:筛选具有与以下任何字段匹配的字段的文档: 提供条件
这个有用!!如何在术语之间应用和运算符?
{
"query" : {
"filtered" : {
"filter" : {
"bool" : {
"must" : [
{ "terms" : {"class" : [6001, 6018, 6013]}},
{ "terms" : {"subject" : [5013, 5004]}},
{ "range" : {"salary" : {"gte": 12000,"lte": 15000}}}
]
}}}}}