使用术语过滤器的弹性搜索过滤查询

米卡·杜波依斯

我的筛选查询确实有问题。当我运行以下查询时:

{
"query":{
  "filtered":{
     "query":{
        "regexp":{
           "name":"chri.*"
        }
     },
     "filter":{
        "bool":{
           "must":[
                {"term": { "accountNonLocked": "false" }}
            ]
        }
     }
  }
},"fields" : ["name", "id", "accountNonLocked","role"], 
"from" : 0, 
"size" : 10
}

我得到以下回应

{
"took": 4,
  "timed_out": false,
  "_shards": {
     "total": 5,
     "successful": 5,
     "failed": 0
  },
  "hits": {
  "total": 2,
  "max_score": 1,
  "hits": [
  {
    "_index": "candidatindex",
    "_type": "job",
    "_id": "54c7867ecfcbbe42dc000478",
    "_score": 1,
    "fields": {
      "name": [
        "Christophe toto"
      ],
      "accountNonLocked": [
        true
      ],
      "role": [
        "DHR"
      ]
    }
  },
  {
    "_index": "candidatindex",
    "_type": "job",
    "_id": "54c7867ecfcbbe42dc000468",
    "_score": 1,
    "fields": {
      "name": [
        "Christophe Toto"
      ],
      "accountNonLocked": [
        true
      ],
      "role": [
        "CANDIDATE"
      ]
    }
  }
  ]}
}

但是当我在这样的角色上添加过滤器时:

{
"query":{
  "filtered":{
     "query":{
        "regexp":{
           "name":"chri.*"
        }
     },
     "filter":{
        "bool":{
           "must":[
                {"term": { "accountNonLocked": "false" }},
                {"term": { "role": "CANDIDATE" }}
            ]
        }
     }
  }
},"fields" : ["name", "id", "accountNonLocked","role"], 
"from" : 0, 
"size" : 10
}

然后我得到了一个空结果:

{
"took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

有人能告诉我我做错了吗?

您的role字段可能是一个analyzed字符串。因此,要么尝试使用小写的值,例如

 {"term": { "role": "candidate" }}

或将role字段的映射更改not_analyzed(您需要重新索引数据以使更改生效)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用术语过滤器的弹性搜索过滤查询

来自分类Dev

弹性搜索。嵌套网络:弹性属性的术语过滤器

来自分类Dev

范围和术语过滤器的弹性搜索组合

来自分类Dev

通过术语弹性搜索限制过滤器

来自分类Dev

弹性搜索地理位置查询过滤器

来自分类Dev

弹性搜索过滤器/查询中的多个 bool 子句

来自分类Dev

在弹性搜索中使用过滤器查询嵌套字段上的聚合

来自分类Dev

在弹性搜索中对过滤器使用聚合

来自分类Dev

弹性搜索嵌套过滤器

来自分类Dev

带有布尔的弹性搜索过滤器查询返回无效结果

来自分类Dev

带有布尔的弹性搜索过滤器查询返回无效结果

来自分类Dev

弹性搜索 更像这个带有过滤器的查询是添加结果

来自分类Dev

弹性搜索查询过滤

来自分类Dev

弹性搜索中如何应用过滤器?

来自分类Dev

弹性搜索:常规和条件过滤器

来自分类Dev

弹性搜索:具有聚合功能的ngram过滤器

来自分类Dev

基于对象数组的弹性搜索过滤器

来自分类Dev

弹性搜索中如何应用过滤器?

来自分类Dev

弹性搜索字词过滤器不起作用

来自分类Dev

弹性搜索范围过滤器不正确

来自分类Dev

在 elasticsearch_dsl 过滤器查询中排除术语

来自分类Dev

弹性嵌套查询字段应该存在过滤器

来自分类Dev

在弹性搜索中使用带有过滤器的聚合

来自分类Dev

使用弹性搜索进行过滤查询

来自分类Dev

使用多个术语和Q过滤器对归约查询进行排序

来自分类Dev

使用术语过滤器和 function_score 查询总是给出分数 0

来自分类Dev

使用BASH的LDAP搜索过滤器

来自分类Dev

如何使用Nokogiri过滤数组(搜索,过滤器,条件等)

来自分类Dev

具有过滤器的弹性搜索聚合无法过滤聚合

Related 相关文章

热门标签

归档