Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch Elasticsearch筛选多个字段_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch Elasticsearch筛选多个字段,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch筛选多个字段,elasticsearch,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

我在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": "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}}}
                  ]
                }}}}}