我有以下映射:
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
索引分析器的令牌:AH
,AH.
,AH.2
,AH.20
搜索分析器的令牌:AH.20
查询:
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "product.productCode",
"query": "AH.20"
}
}
]
}
}
}
但它什么也没有回报。映射有什么问题?
PS当我不使用search_analyzer时,elasticsearch返回正确的结果(我确信ES使用AH
标记符将搜索字符串分解为标记20
,standard
答案 0 :(得分:2)
除非是拼写错误,否则您的映射定义中存在问题:
inxed_analyzer: edge_ngram_analyzer
应该是:
index_analyzer: edge_ngram_analyzer