在elasticsearch下面的config下面建立一个文件夹analysis然后在里面建立一个文本,当然最好在widow里面notepad里面建立好,这个文本名字叫synonyms.txt
一定要是utf-8编辑的
将这个文件上传
然后重启es就可以使用了
这是建立的一个映射
PUT test_index
{
“settings”: {
“number_of_shards”: 1,
“analysis”: {
“filter”: {
“my_synonym_filter”:{
“type”:“synonym”,
“synonyms_path”:“analysis/synonyms.txt”
}
},
“analyzer”: {
“ik_syno”:{
“type”:“custom”,
“tokenizer”:“ik_smart”,
“filter”:[“my_synonym_filter”]
},
“ik_syno_max”:{
“type”:“custom”,
“tokenizer”:“ik_max_word”,
“filter”:[“my_synonym_filter”]
}
}
}
},
“mappings”: {
“doc”:{
“properties”:{
“item_name”:{
“type”:“text”,
“analyzer”:“ik_syno_max”,
“search_analyzer”:“ik_syno_max”
}
}
}
}
}
插入两条数据
POST test_index/doc/1
{
“item_name”:“对违反出租车运营规定的处罚”
}
POST test_index/doc/2
{
“item_name”:“出租汽车经营者不按照规定配置出租汽车相关设备”
}
检索
GET /test_index/doc/_search
{
“query”: {
“match”: {
“item_name”: “出租车”
}
}
}
两条都搜出来了因为当时将这两个设置为同义词