为了账号安全,请及时绑定邮箱和手机立即绑定

如何过滤掉复杂查询中的文本字段?

如何过滤掉复杂查询中的文本字段?

拉莫斯之舞 2022-01-13 10:34:09
我的 UI 上有很多文档过滤器(日期范围、复选框、输入字段),因此查询是动态生成的——这就是我决定创建一个布尔查询并将所有内容推送到must数组的原因。这是我的请求示例:const {    body: {      hits    }  } = await esclient.search({    from: filterQuery.page || 0,    size: filterQuery.limit || 1000,    index,    body: query  });复选框(我使用了额外bool.should的内部must数组)和日期范围完美地工作,但术语/匹配过滤根本不起作用:{  "query": {    "bool": {      "must": [          {"match": { "issueNumber": "TEST-10" }}        ]    }    }} 上面的查询为我提供了索引中包含“TEST”(及其分数)的所有文档,如果我更改match为term- 它返回一个空数组。由于我的字段属于“文本”类型,我也尝试过filter查询 - ES 仍然提供所有带有“测试”字样的文档:{  "query": {    "bool": {      "must": [        {          "bool": {            "filter": {              "match": {"issueNumber": "TEST-10"}            }          }        }      ]    }  }} 这就是我的命中的样子:       {        "_index" : "test_elastic",        "_type" : "_doc",        "_id" : "bj213hj2gghg213",        "_score" : 0.0,        "_source" : {          "date" : "2019-11-26T13:27:01.586Z",          "country" : "US",          "issueNumber" : "TEST-10",        }有人可以给我关于如何在复杂查询中正确过滤文档的输入吗?这是我的索引的结构:{  "test_elasticsearch" : {    "aliases" : { },    "mappings" : {      "properties" : {        "country" : {          "type" : "text"        },        "date" : {          "type" : "date"        },        "issueNumber" : {          "type" : "text"        }      }    },    "settings" : {      "index" : {        "creation_date" : "1574759226800",        "number_of_shards" : "1",        "number_of_replicas" : "1",        "uuid" : "PTDsdadasd-ERERER",        "version" : {          "created" : "7040299"        },        "provided_name" : "logs"      }    }  }}
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

好的,问题是您的issueNumber字段类型不正确,如果您的目标是对其进行精确搜索,则应该这样keyword做text。对country. 像这样修改你的映射:


  "properties" : {

    "country" : {

      "type" : "keyword"

    },

    "date" : {

      "type" : "date"

    },

    "issueNumber" : {

      "type" : "keyword"

    }

  }

然后重新索引您的数据,您的查询将起作用。


查看完整回答
反对 回复 2022-01-13
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信