elasticsearch同义词配置elasticsearch-analysis-dynamic-synonym

仲孙超
2023-12-01

elasticsearch 5.2.1
elasticsearch-analysis-dynamic-synonym 5.1.1 看来要改改了,根据错误信息改了一下,不错可以使用
elasticsearch-analysis-dynamic-synonym 5.2.1

下载地址

风.fox
https://github.com/bells/elasticsearch-analysis-dynamic-synonym
最新版,作者还未提供jar包,那么就要自己编译
最新版还是5.1.1版本,这里自己就要修改成5.2.1版本

unzip elasticsearch-analysis-dynamic-synonym-master.zip
cd elasticsearch-analysis-dynamic-synonym-master

自己编译后的文件下载地址:
http://download.csdn.net/detail/wljk506/9763705

自己编译说明

当前文件为5.1.1版本,要修改为5.2.1版本,修改2个文件
第一个文件

vim /home/hadoop/elasticsearch-analysis-dynamic-synonym-master/src/main/java/com/bellszhu/elasticsearch/plugin/DynamicSynonymPlugin.java

第40行 @Override 删除即可
第二个文件

vim /home/hadoop/elasticsearch-analysis-dynamic-synonym-master/pom.xml

把本文件里面所有版本号5.1.1修改为5.2.1 重新执行编译后的文件就是5.2.1版本的

maven编译

根据如下安装 maven环境,并且使用阿里云国内镜像
http://blog.csdn.net/fenglailea/article/details/53304479

cd elasticsearch-analysis-dynamic-synonym-master
mvn package

编译成功后文件位置:elasticsearch-analysis-dynamic-synonym-master/target/releases/elasticsearch-analysis-dynamic-synonym-5.2.1.zip
解压缩

cd elasticsearch-analysis-dynamic-synonym-master/target/releases/
#解压缩
unzip elasticsearch-analysis-dynamic-synonym-5.2.1.zip -d dynamic-synonym

elasticsearch插件配置

复制移动到插件目录

mv dynamic-synonym ~/elasticsearch-5.2.1/plugins/

重新启动 elasticsearch

词库

位置:

vim ~/elasticsearch-5.2.1/config/synonyms.txt

synonyms.txt 文件中有

美伊,美国和伊拉克
中韩,中国和韩国
中美,中国和美国

注意:词库内的词,必须在分词词库中存在

测试

索引则删除

如果已存在索引则删除,没有则不执行

curl -XDELETE 'http://10.1.5.101:9200/testsynonyms'

创建索引和映射

curl -XPUT "http://10.1.5.101:9200/testsynonyms" -d '{
    "settings" : {
        "index": {
          "analysis": {
            "analyzer": {
              "synonym": {
                "tokenizer": "whitespace",
                "filter": ["synonym"]
              }
            },
            "filter": {
              "synonym": {
                "type": "synonym",
                "synonyms_path": "synonyms.txt",
                "ignore_case": true
              }
            }
          }
        }
    },
    "mappings" : {
        "_default_":{
          "_all": { "enabled":  false } // 关闭_all字段,因为我们只搜索title字段
        },
        "jdbc" : {
            "dynamic" : true,// 是否启用“动态修改索引”
            "properties" : {
                "title" : {
                    "type" : "string",
                    "analyzer" : "synonym"
                }
            }
        }
    }
}'

测试同义词

http://10.1.5.101:9200/testsynonyms/_analyze?pretty&analyzer=synonym&text=中美

输出

{
"tokens": [
{
"token": "中美",
"start_offset": 0,
"end_offset": 2,
"type": "word",
"position": 0
},
{
"token": "中国和美国",
"start_offset": 0,
"end_offset": 2,
"type": "SYNONYM",
"position": 0
}
]
}

其他

curl -XPOST http://localhost:9200/testsynonyms/jdbc/1 -d'
{"title":"美伊的是个烂摊子吗"}
'

curl -XPOST http://localhost:9200/testsynonyms/jdbc/2 -d'
{"title":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
'

curl -XPOST http://localhost:9200/testsynonyms/jdbc/3 -d'
{"title":"中美领事馆"}
'
curl -XPOST http://localhost:9200/testsynonyms/jdbc/4 -d'
{"title":"美国和伊拉克就是个烂摊子"}
'
curl -XPOST http://localhost:9200/testsynonyms/jdbc/5 -d'
{"title":"中国和美国美领事馆"}
'
 类似资料: