【问题标题】:Elasticsearch Query String with shingle filter not working带有 shingle 过滤器的 Elasticsearch 查询字符串不起作用
【发布时间】:2017-05-09 02:04:24
【问题描述】:

我在使用瓦状过滤器时遇到问题。

我的设置如下:

    "filter_shingle": {
      "type": "shingle",
      "min_shingle_size": 2,
      "max_shingle_size": 3,
      "output_unigrams": false
    }

    "analyzer_1": {
      "type": "custom",
      "tokenizer": "standard",
      "filter": ["asciifolding","lowercase","filter_shingle"]
    }

我希望字段数据示例:“我的名字是”,使用此过滤器后,数据变为:

  "my name"
  "my name is"
  "name is"

...

“field1”使用“analyzer_1”

此处查询字符串(不要使用“match_phrase”)

  "query_string" : {
    "default_operator": "AND",
      "fields" : ["field1"],
      "query" : "My name",
      "analyzer": "keyword"
  }

但是没有数据检索,当我使用映射和分析器创建索引时不会出现错误。

谁能帮帮我,非常感谢(抱歉英语不好)

【问题讨论】:

    标签: elasticsearch filter query-string analyzer


    【解决方案1】:

    由于您在query_string 查询中使用keyword 分析器,因此您需要输入小写字母,即my name 而不是My name,因为您的索引标记是my name 而不是@ 987654326@

      "query_string" : {
        "default_operator": "AND",
          "fields" : ["field1"],
          "query" : "my name",        <-- change this
          "analyzer": "keyword"
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 2016-04-25
      • 2020-06-01
      相关资源
      最近更新 更多