2015-10-28 56 views
1

我有以下映射:为什么search_analyzer(关键字)不能与edgeNgram index_analyer一起使用?

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打破搜索字符串使用standard标记者到令牌AH20

+0

@AndreiStefan它不与搜索项查询/过滤器 {工作“查询”:{ “布尔”:{ “必须”:[{ “术语”:{ “product.productCode”: “TA.WRN.020” } } ] } } } –

回答

2

你的问题,除非是一个错字,是在你的映射定义:

inxed_analyzer: edge_ngram_analyzer 

它应该是:

index_analyzer: edge_ngram_analyzer 
+0

是的,错字是这个问题的原因:(谢谢你 –

相关问题