安装elasticsearch及中文IK和近义词配置

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介:

安装elasticsearch及中文IK和近义词配置

安装java环境

java环境是elasticsearch安装必须的

yum install java-1.8.0-openjdk

安装elasticsearch

其实es的安装非常简单了

https://www.elastic.co/downloads/elasticsearch
cd /tmp
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz
tar -xf elasticsearch-1.7.1.tar.gz
mv /tmp/elasticsearch-1.7.1 /usr/local/
ln -s /usr/local/elasticsearch-1.7.1 /usr/local/elasticsearch

安装head插件

head插件让我们能更简单管理elasticsearch

cd /usr/local/elasticsearch
./bin/plugin --install mobz/elasticsearch-head

访问 http://192.168.33.10:9200/_plugin/head/ 可以访问

安装IK插件

去rtf项目中获取对应插件,建议别去自己找plugin下,medcl大已经为我们准备好了一切

cd /tmp
wget https://github.com/medcl/elasticsearch-rtf/archive/master.zip
unzip elasticsearch-rtf-master.zip
cd elasticsearch-rtf-master
cp -rf config/ik /usr/local/elasticsearch/config/
cp -rf plugins/analysis-ik /usr/local/elasticsearch/plugins/

vim /usr/local/elasticsearch/config/elasticsearch.yml
增加:
index:
  analysis:
    analyzer:
      ik:
          alias: [ik_analyzer]
          type: org.elasticsearch.index.analysis.IkAnalyzerProvider
      ik_max_word:
          type: ik
          use_smart: false
      ik_smart:
          type: ik
          use_smart: true

配置近义词

近义词组件已经是elasticsearch自带的了,所以不需要额外安装插件,但是想要让近义词和IK一起使用,就需要配置自己的分析器了。

首先创建近义词文档

在config目录下

mkdir analysis
vim analysis/synonym.txt

编辑:

i-pod, i pod, i pad => ipod,
sea biscuit, sea biscit => seabiscuit,
中文,汉语,汉字

这里可以看到近义词的写法有两种:

a,b => c
a,b,c

第一种在分词的时候,a,b都会解析成为c,然后把c存入索引中
第二种在分词的时候,有a的地方,都会解析成a,b,c,把a,b,c存入索引中
第一种方法相比之下有个主词,比较省索引。

配置elasticsearch.yml中的自定义索引,和前面的ik结合,可以这么设置:

index:
  analysis:
    analyzer:
      ik:
          alias: [ik_analyzer]
          type: org.elasticsearch.index.analysis.IkAnalyzerProvider
      ik_max_word:
          type: ik
          use_smart: false
      ik_smart:
          type: ik
          use_smart: true
      my_synonyms:
          tokenizer: standard
      ik_syno:
          type: custom
          tokenizer: ik
          filter: [my_synonym_filter]
      ik_syno_smart:
          type: custom
          tokenizer: ik
          filter: [my_synonym_filter]
          use_smart: true
    filter:
      my_synonym_filter:
          type: synonym
          synonyms_path: analysis/synonym.txt

上面的配置文件创建了一个filter: my_synonym_filter, 然后创建了两个自定义analyzer: ik_syno和ik_syno_smart

启动elasticsearch:

bin/elasticsearch

案例测试

按照上面的配置,我们使用一个具体的句子进行测试:

120.55.72.158:9700/elasticsearchtest2
{
"index" : {
"analysis" : {
"analyzer" : {
"ik_syno" : {
"tokenizer" : "ik",
"filter" : ["my_synonym_filter"]
}
}
}
}
}

curl -XPOST "192.168.33.10:9200/elasticsearchtest/_analyze?analyzer=ik_syno" -d 'we are eng man i pad 汉语文字'

返回json结构:

{
    "tokens": [
        {
            "token": "we",
            "start_offset": 0,
            "end_offset": 2,
            "type": "ENGLISH",
            "position": 1
        },
        {
            "token": "eng",
            "start_offset": 7,
            "end_offset": 10,
            "type": "ENGLISH",
            "position": 2
        },
        {
            "token": "man",
            "start_offset": 11,
            "end_offset": 14,
            "type": "ENGLISH",
            "position": 3
        },
        {
            "token": "ipod",
            "start_offset": 15,
            "end_offset": 20,
            "type": "SYNONYM",
            "position": 4
        },
        {
            "token": "中文",
            "start_offset": 21,
            "end_offset": 23,
            "type": "SYNONYM",
            "position": 5
        },
        {
            "token": "汉语",
            "start_offset": 21,
            "end_offset": 23,
            "type": "SYNONYM",
            "position": 5
        },
        {
            "token": "汉字",
            "start_offset": 21,
            "end_offset": 23,
            "type": "SYNONYM",
            "position": 5
        },
        {
            "token": "文字",
            "start_offset": 23,
            "end_offset": 25,
            "type": "CN_WORD",
            "position": 6
        }
    ]
}

这里就可以看到我们之前配置的东西都成功了:

  • are字被过滤,是由于are字是stop_words
  • i pad这个词语被转化为了ipod是由于近义词字典中我们设置了 i pad=>ipod
  • “文字”两个中文字是被分成一个中文词切割,是因为ik的默认main.dic里面有文字两个字
  • “中文”“汉字”“汉语”三个词出现是由于近义词字典中我们设置了这三个为同等级的近义词




本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/4789239.html,如需转载请自行联系原作者
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
存储 缓存 固态存储
优化Elasticsearch 硬件配置
优化Elasticsearch 硬件配置
809 5
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
2366 64
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
6565 0
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
471 4
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
715 5
|
监控 负载均衡 安全
Elasticsearch集群配置优化
Elasticsearch集群配置优化
461 1
|
测试技术 API 开发工具
ElasticSearch的IK分词器
ElasticSearch的IK分词器
329 7
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
1538 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】

热门文章

最新文章