为什么search_analyzer(keyword)不能与edgeNgram index_analyer一起使用?

时间:2015-10-28 11:22:13

标签: elasticsearch

我有以下映射:

analyzer:
    edge_ngram_analyzer:
        type: custom
        tokenizer: edge_ngram
tokenizer:
    edge_ngram:
        type : edgeNGram
        min_gram : 2
        max_gram : 20

productCode:
    type: string
    inxed_analyzer: edge_ngram_analyzer
    search_analyzer: keyword

搜索字符串为AH.20 索引分析器的令牌:AHAH.AH.2AH.20 搜索分析器的令牌:AH.20

查询:

 {
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "default_field": "product.productCode",
            "query": "AH.20"
          }
        }
      ]
    }
  }
} 

但它什么也没有回报。映射有什么问题? PS当我不使用search_analyzer时,elasticsearch返回正确的结果(我确信ES使用AH标记符将搜索字符串分解为标记20standard

1 个答案:

答案 0 :(得分:2)

除非是拼写错误,否则您的映射定义中存在问题:

inxed_analyzer: edge_ngram_analyzer

应该是:

index_analyzer: edge_ngram_analyzer