带有shingle过滤器的Elasticsearch Query String无法正常工作

时间:2016-12-23 11:03:45

标签: elasticsearch filter query-string analyzer

我的木瓦过滤器有问题。

我的设置位于下方:

    "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"
  }

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

任何人都可以帮助我,非常感谢你(对于可怜的EN感到抱歉)

1 个答案:

答案 0 :(得分:0)

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

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