term
属于低级查询,不会进行解析,
但是我测了一下,发现解析了
这是 setting 和 mapping:
{
"pingyin": {
"mappings": {
"t1": {
"properties": {
"name": {
"type": "string",
"boost": 10,
"term_vector": "with_positions_offsets",
"fields": {
"primitive": {
"type": "string",
"store": true,
"analyzer": "keyword"
}
},
"analyzer": "pinyin_analyzer"
}
}
}
},
"settings": {
"index": {
"analysis": {
"analyzer": {
"pinyin_analyzer": {
"filter": "word_delimiter",
"tokenizer": "my_pinyin"
}
},
"tokenizer": {
"my_pinyin": {
"padding_char": " ",
"type": "pinyin",
"first_letter": "prefix"
}
}
},
"number_of_shards": "5",
"number_of_replicas": "1",
"uuid": "lllRMvCLQ4WFpbO1KZyRCg",
"version": {
"created": "2030399"
}
}
},
"warmers": {}
}
}
我的查询:
{
"query": {
"term" : {
"name" : "zxy"
}
}
}
结果还是走了拼音的分析器
,并搜出了结果
让我很不解,是我理解的不对,还是配置错了??
你mapping都设置的是分词器用keyword,查询过程中肯定会按照分词器去查询的。无论你用啥。
像这类你可以设定一个数组,name用分词的,name.raw用不分词的,这类检索检索name.raw就好了