1.在config/目录下创建文件
analysis/synonym.txt
内容如下
搜房,房天下 成交均价,成交单价,房价,售价 保障房,经济适用房,配套商品房,动迁房,廉租房 出租,租赁 买卖,销售 克而瑞,CRAC 耐克=>鞋子
2.创建索引时分析器配置过滤
{ "settings": { "index": { "max_result_window": 1000000 }, "analysis": { "analyzer": { "ik_max_word": { "tokenizer": "ik_max_word", "filter": [ "lowercase", "asciifolding", "my_synonym_filter" ] } }, "filter": { "my_synonym_filter": { "type": "synonym", "synonyms_path": "analysis/synonym.txt" } } } }, "mappings": { "properties": { "goodsName": { "type": "text", "analyzer": "ik_max_word" } } } }
因为“克而瑞”和“CRAC”是近义词,所以在搜索结果中既有“克而瑞”,也有“CRAC”
3.同义词配置详解
一行一个同义词,其中 AA,BB=>CC 这种写法会将AA与BB都映射到CC,然后只对CC进行索引;而 AA,BB 这种当文档中存在AA时,不仅仅会索引AA还会索引BB;这里需要注意的是如果文件中一个词存在于多行,那么对应的近义词会累计,如:
小米,小米手机 小米,小米电脑
此时“小米”对应的近义词是“小米手机”,“小米电脑”,但如果是输入“小米手机”,那么近义词只有“小米”.