全文检索引擎ElasticSearch:文档管理、集成IK分词器

文档管理

添加文档

定位到资源
url

http://localhost:9200/{index}/{type}/{_id}

_id:文档的id

方法

put、post

请求体:json数据格式

{
	"id":1,
	"name":"张三",
	"address":"浙江杭州"
}

在这里插入图片描述
注意:_idid不是同一个东西
_id:文档的id,es自动创建
id:一个自定义的字段
在这里插入图片描述
如果使用post方法添加文档,可以不设置文档的id,es会自动生成一个id(一般推荐使用put的写法,可以使id和_id保持一致)。
在这里插入图片描述

修改文档

其实就是先删除后添加。所以修改与添加的方法相同。

url:

http://localhost:9200/{index}/{type}/{_id}

方法:

POST

请求体:修改结果对应的文档。
在这里插入图片描述

删除文档

url:

http://localhost:9200/{index}/{type}/{_id}

方法:

delete

在这里插入图片描述

文档的查询

一、使用headmaster查询
数据过滤查询
在这里插入图片描述
简单查询功能:

  1. 根据id查询

  2. 根据term(关键词)查询:一个关键词就是一个term,包含两部分内容
    关键词所在的域
    关键词本身在这里插入图片描述

  3. 根据query_string查询:先分词再进行查询
    在这里插入图片描述

二、使用restful api查询
1、 根据id查询
定位到资源:

http://localhost:9200/{index}/{type}/{_id}

方法

GET

在这里插入图片描述
2、根据term查询
url

http://localhost:9200/{index}/{type}/_search

方法

POST

请求体

查询条件,使用json格式表示。
{
	"query":{
		"term":{
			"name":"小"
		}
	}
}

在这里插入图片描述
3、根据query_string查询
url

http://localhost:9200/{index}/{type}/_search

方法

POST

请求体

{
	"query":{
		"query_string":{
			"query":"小明在哪?",
			"default_field":"name"
		}
	}
}

在这里插入图片描述

IK分词器安装

以插件形式安装到es中,注意es安装插件后,es的绝对路径中,不能有空格,否则会出现预料之外的错误!!!

下载地址,如果下载失败,则可以下载源代码然后使用maven进行编译打包

https://github.com/medcl/elasticsearch-analysis-ik/releases

安装方法:

  1. 下载ik的ES插件(注意要对应版本),如果下载速度慢,可以使用gitee
  2. 解压缩
  3. 解压后的文件夹复制到es的plugins目录下
  4. 重启es服务

测试分词器:可以通过一个url测试分词器的分词效果
使用get方法即可
ik分词器的名称:

  • ik_smart:快速分词
  • ik_max_word:最细粒度分词

6.x以下版本的测试方法

http://localhost:9200/_analyze?analyzer=ik_max_word&text=我是程序员

6.x以上版本的测试方法

在这里插入图片描述

使用IK分词器

设置mapping时,指定中文分词器

创建新的索引库,添加数据

在这里插入图片描述
查询出来了两条结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Sakuraaaaaaa/article/details/107383529