网站建设推广销售人员,网页设计欣赏网站,php网站开发答案,怎样做自己的销售网站目录 一、ElasticSearch 索引库操作
1.1、mapping 属性
1.2、索引库相关操作
1.2.1、创建索引库
1.2.2、增加和删除索引库
1.2.3、修改索引库
1.3、文档操作
1.3.1、添加文档
1.3.2、文档的查询和删除
1.3.3、修改文档
1.全量修改#xff1a;会先删除旧文档#xf…目录 一、ElasticSearch 索引库操作
1.1、mapping 属性
1.2、索引库相关操作
1.2.1、创建索引库
1.2.2、增加和删除索引库
1.2.3、修改索引库
1.3、文档操作
1.3.1、添加文档
1.3.2、文档的查询和删除
1.3.3、修改文档
1.全量修改会先删除旧文档添加新文档.
2. 增量修改修改执行字段值.
如果通过 PUT 进行全量修改的文档和原来的文档不一样会发生什么 一、ElasticSearch 索引库操作 1.1、mapping 属性
mappinig 是对索引库中文档的约束常见的 mapping 属性如下
type表示字段数据类型常见的类型如下 字符串text可以进行分词的文本、keyword精确值不用进行分词的文本. 例如国家名、品牌、公司名、ip 地址.......数值long、integer、short、byte、double、float布尔boolean日期 date对象objectindex是否创建索引。默认 true.analyzer使用那种分词器进行分词比如之前所说的 IK 分词器.properties该字段的子字段.
例如如下
PUT /heima
{mappings: {properties: {//这里是自定义的 info 信息info:{ type: text, //表示 info 中的信息可以进行分词.analyzer: ik_smart //使用 IK 分词器分词//这里没有定义 index 表示默认为词条创建索引},email:{type: keyword, //表示 email 不需要分词是一个关键字index: false //不创建索引},name:{properties: {firstName: {type: keyword}}},// ......}}
}1.2、索引库相关操作
1.2.1、创建索引库
ES 中通过 Restful 请求操作索引库、文档. 请求的内容用 DSL 语句来表示.
创建 索引库 和 mapping 的语法如下
PUT /索引库名称
{mappings: {properties: {字段名:{type: text,analyzer: ik_smart},字段名2:{type: keyword,index: false},字段名3:{properties: {子字段: {type: keyword}}},// ...略}}
}假设创建以下索引库
PUT /userinfo
{mappings: {properties: {info:{type: text,analyzer: ik_smart},email:{type: keyword,index: false},name:{properties: {firstName: {type: keyword}}}}}
}1.2.2、增加和删除索引库
查看索引库语法
GET/索引库名示例
GET /userinfo 删除索引库的语法
DELETE /索引库名
示例
DELETE /userinfo 删除后再 GET 就会发现找不到该索引库如下 1.2.3、修改索引库
索引库和 mapping 一旦创建就无法修改只可以再原来的基础上新增字段.
语法如下
PUT /索引库名/_mapping
{properties: {新字段名:{type: integer}}
}实例如下
PUT /userinfo/_mapping
{properties: {age:{type: integer}}
}例如这里我先创建 userinfo 索引库. 接着新增 age 字段 接着查询 userinfo 索引库 如果是 PUT 的是存在的字段呢比如 age将 type 改为 keyword他就会告诉你 mapper 中 integer 类型不可以修改成 keyword. 1.3、文档操作
1.3.1、添加文档
这里就类似于 mysql 中向表中添加数据一样需要先创建表后向添加数据.
文档操作也是如此需要先创建索引库然后才能添加文档.
添加文档语法如下
POST /索引库名/_doc/文档id
{字段1: 值1,字段2: 值2,字段3: {子属性1: 值3,子属性2: 值4},// ...
}示例如下
POST /userinfo/_doc/1
{info: 大家好我是练习了两年半的偶像练习生,email: cxkitcast.cn,name: {firstName: c,lastName: xk}
}假设创建以下索引库 下面添加文档 _index表示你是向哪个索引库添加文档._type表示类型添加的是什么类型_doc 表示文档._id是添加文档的指定的 id.version这是一个版本号基于自旋锁实现的版本号这个每对这个文档进行一次操作版本号 就会 1.resultcreated 表示创建成功. 1.3.2、文档的查询和删除
查询文档语法
GET /索引库名/_doc/文档id
示例
GET /userinfo/_doc/1 删除文档语法
DELETE /索引库名/_doc/文档id 示例
DELETE /userinfo/_doc/1 1.3.3、修改文档
修改文档有两种方式
1.全量修改会先删除旧文档添加新文档.
语法如下
PUT /索引库名/_doc/文档id
{字段1: 值1,字段2: 值2,// ... 略
}示例如下
PUT /userinfo/_doc/1
{info: 我是练习两年半的偶像练习生,email: cxkitcast.cn,name: {firstName: c,lastName: xk}
}例如原来存在以下文档 现在 PUT 以下操作 然后 GET 查询就是修改后的文档 2. 增量修改修改执行字段值.
主要注意 索引名后面是 _update
语法如下
POST /索引库名/_update/文档id
{doc: {字段名: 新的值,}
}示例如下
POST /userinfo/_update/1
{doc: {email: ZhaoYunitcast.cn}
}假设原本有文档如下 修改 info 字段的值如下 通过 GET 获取文档 如果通过 PUT 进行全量修改的文档和原来的文档不一样会发生什么
例如存在以下文档 这里新增字段 age 结果如下 实际上这里 es 的处理方式就是按照 “删除旧文档新增新文档” 的操作来修改文档的.