本文共 1680 字,大约阅读时间需要 5 分钟。
(mapping是对索引库文档的约束,以下是常见的mapping属性说明)
text
, keyword
) text
:可以进行分词的文本字段,如搜索提示等。keyword
:精确值,无需分词的文本字段,如国家名、品牌名、IP地址等。long
, integer
, short
, byte
, double
, float
)boolean
)date
)object
)index
:是否创建索引,默认值为 true
。analyzer
:指定使用哪种分词器,默认值为 ik_smart
。properties
:字段的子字段定义。{ "properties": { "info": { "type": "text", "analyzer": "ik_smart" }, "email": { "type": "keyword", "index": "false" }, "createTime": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss", "index": "false" }, "name": { "properties": { "firstName": { "type": "keyword" } } } }}
通过 PUT
请求向指定索引库名下的 _mapping
路径发送上述JSON数据即可创建或更新索引库结构。
索引库的创建语法如下:
PUT / <索引库名>索引库名>
发送上述请求即可创建索引库,默认情况下索引库名为 v1
。
GET / <索引库名>索引库名>
DELETE / <索引库名>索引库名>
索引库和 mapping
结构一旦创建后只能通过新增字段的方式进行修改。
PUT / <索引库名 _mapping>索引库名>
添加新的字段即可完成修改。如需新增字段 age
,发送以下数据:
{ "properties": { "age": { "type": "integer" } }}
添加文档的语法如下:
POST / <索引库名> _doc/ <文档id>文档id> 索引库名>
请求体中填写需存储的文档数据,如下示例:
{ "info": "您好,我是练习了两年半的偶像练习生,", "email": "cxk@itcast.cn", "name": { "firstName": "c", "lastName": "xk" }}
通过 POST 请求发送即可创建新文档。
查询文档的语法:
GET / <索引库名> _doc/ <文档id>文档id> 索引库名>
如需查询某一文档的具体字段,可以在URL中追加字段名。
删除文档的语法:
DELETE / <索引库名> _doc/ <文档id>文档id> 索引库名>
将 <文档ID>
替换为需要删除的文档ID即可。
文档修改有两种方式:
PUT / <索引库名> _doc/ <文档id>文档id> 索引库名>
将新数据发送到指定路径即可完成修改。
POST / <索引库名> _update/ <文档id>文档id> 索引库名>
在请求体中传递修改的字段和新值,例如:
{ "doc": { "email": "ZhaoYun@itcast.cn" }}
这种方式可以直接修改指定字段的值,而不需要删除旧文档。
PUT
全量修改文档,其实质是先删除旧文档,再新增新文档。转载地址:http://ueeyk.baihongyu.com/