索引CURD
创建
- 基本语法:
- 请求方法:PUT
- 请求路径:/索引名称
- 请求参数:mapping
- 有这样一条文档,需要创建索引。
- age:类型为 byte;参与搜索,因此需要index为true;无需分词器。
- weight:类型为float;参与搜索,因此需要index为true;无需分词器。
- isMarried:类型为boolean;参与搜索,因此需要index为true;无需分词器。
- info:类型为字符串,需要分词,因此是text;参与搜索,因此需要index为true;分词器可以用ik_smart。
- email:类型为字符串,但是不需要分词,因此是keyword;不参与搜索,因此需要index为false;无需分词器。
- score:虽然是数组,但是我们只看元素的类型,类型为float;参与搜索,因此需要index为true;无需分词器。
- name:类型为object,需要定义多个子属性
- name.firstName;类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要index为true;无需分词器。
- name.lastName;类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要index为true;无需分词器。
- 注意:所有的索引名都必须要小写。
|
|
- 创建demo。
|
|
查询
- 基本语法:
- 请求方法:GET
- 请求路径:/索引名称
- 请求参数:无
GET /users
修改
-
基本语法:
- 请求方法:PUT
- 请求路径:/索引名称/_mapping
- 请求参数:properties。
-
倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这简直是灾难。因此索引库一旦创建,无法修改mapping。
-
虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。
PUT /users/_mapping
{
"properties": {
"score": {
"type": "float"
}
}
}
删除
- 基本语法:
- 请求方法:DELETE
- 请求路径:/索引名称
- 请求参数:无
DELETE /users