分词
采用ik分词时,不要一味使用ik_smart,针对索引和搜索时采用不用的分词方式,索引分词用的是ik_smart,搜索分词用的是ik_max_word
"address" : {
"type" : "text",
"analyzer" : "ik_smart",
"search_analyzer" : "ik_max_word"
},
精准查询
关于查询,es的想要精准的查,貌似挺难。
match检索,会分词,然后检索,如果用到ip地址这样格式的,如:112.2.2.3 那就搜的一地鸡毛,所以这种字段最好在创建索引时,就规定为 keyword类型,这样检索就准确了,不然使用term时需要加上 .keyword后缀
GET aa/_search
{
"query": {
"multi_match": {
"query": "22-0F-0C-A9-30-CF",
"fields": [
"mac"
]
}
}
}
GET aa/_search
{
"query": {
"match": {
"mac": "22-0"
}
}
}
GET aa/_search
{
"query": {
"term": {
"mac.keyword": "22-0F-0C-A9-30-CF"
}
}
}
三个查询发现,第1,2都是模糊检索,第3才能准确的出结果。
笔记不断补充中。