安装和启动ElasticSearch
我们直接使用docker部署好的ElasticSearch
访问路径:http://192.168.144.160:9200
ES默认端口是9200
ES基本使用
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--添加SpringDataES的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
</dependencies>
</project>
使用http client操作ES,创建http request文件,能够指定url发送请求
创建好的文件的后缀是.http
GET http://172.26.6.53:9200
### 三个#号即是分割符也是注释,两个请求之间的分隔符,如果没有三个#,无法运行第二个请求
### 对英文进行分词
POST http://172.26.6.53:9200/_analyze
Content-Type: application/json
{
"text": "hello,I am LiMing",
"analyzer": "standard"
}
### 对中文进行分词
POST http://172.26.6.53:9200/_analyze
Content-Type: application/json
{
"text": "我们是中华人民共和国的公民,享有同等的权利和义务",
"analyzer": "standard"
}
analyzer:分词器
standard:是ES默认的分词器,只能对有空格的语言进行友好的分割,对于中文唯一,分词的结果是一个一个的字,是不符合日常使用的习惯,而且也不满足搜索的需求
我们通常情况下是多个字组合成一个关键字,然后根据关键字进行搜索。如果想要对中文进行友好的分词,我们需要一个中文分词器,推荐IK分词器,IK分词器不是ES自带,需要自己安装,直接放到elasticsearch安装根目录下的plugins目录下
使用IK分词器
重新设置中文分词
POST http://172.26.6.53:9200/_analyze
Content-Type: application/json
{
"text": "我们是中华人民共和国的公民,享有同等的权利和义务",
"analyzer": "ik_smart"
}
我们使用的是IK提供的一个叫"ik_smart"的分词器,大家观察结果,可以发现是粗略的分词
如果想要详细的分词结果,我们需要使用"ik_max_word"的分词器
两个分词器的区别
-
ik_smart:
优点:特征是粗略快速的将文字进行分词,占用空间小,查询速度快
缺点:分词的粒度大,可能会跳过一些重要的分词,导致查全率低,查询结果不全面
-
ik_max_word
优点:特征是详细的将文件片段进行分词,查询时查全率高,不容易遗漏数据
缺点:因为分词过于详细,导致有一些无用分词,占用空间较大,查询速度慢
可以设置停止词
进入elasticsearch容器,找到/usr/share/elasticsearch/plugins/ik/config路径下的stopword.dic的文件
编辑里面的内容,把不想生成索引的单词写进去
重启容器
上一篇文章:谈谈全文检索Elasticsearch的核心概念-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/143565562下一篇文章:
标签:http,9200,启动,boot,ik,ElasticSearch,分词器,安装,分词 From: https://blog.csdn.net/Z0412_J0103/article/details/143566202