【问题标题】:Elasticsearch term filter not working?Elasticsearch 术语过滤器不起作用?
【发布时间】:2014-07-31 14:29:29
【问题描述】:

我正在尝试做以下术语过滤

{
  "query": {
    "term": {
      "name": "terry harvey"
    }
  }
}

我得到 0 次点击

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

当我使用“匹配过滤器”而不是“词条过滤器”时,我得到了 48 次点击。

我做错了什么? =(

谢谢!

【问题讨论】:

    标签: filter elasticsearch term


    【解决方案1】:

    不分析词条查询和过滤器,这意味着它们只会找到完全匹配的内容。另一方面,匹配查询被分析,您的姓名字段也可能被分析。更多信息here

    【讨论】:

    • 我明白了,但我怎样才能得到一个与“terry harvey”一样的确切名称的文档?
    • 您需要将字段映射更改为not_analyzed。如果您需要同时通过精确值和全文查询,那么您应该查看 multi field 类型。
    • 我一直在使用 index: "not_analyzed" 但仍然没有搜索大写字母字符串??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2018-11-09
    • 2013-11-13
    • 2018-04-26
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多