ES常用操作
本章将和大家分享 Elasticsearch 的一些基本操作。话不多说,下面我们直接进入主题。
1、索引库操作
1.1、settings属性
settings属性可以设置索引库的一些配置信息,例如:配置分片数和副本数、配置自定义分词器等。其中分片数量只能在一开始创建索引库的时候指定,后期不能修改。副本数量可以随时修改。
1.2、mapping属性
mapping属性是对索引库中文档的约束,常见的mapping属性包括:
1)type:字段数据类型,常见的数据类型在上一章已经介绍过了,此处就不再做过多的描述了。
2)index:是否需要创建倒排索引,默认值为true,如果设置为false那么表明该字段不能被检索,不构建倒排索引。因此,需要根据具体的业务判断该字段将来是否需要参与检索,如果需要的话就设置为true,否则就设置为false。
3)analyzer:使用哪种分词器,一般结合text(可分词的文本)数据类型一起使用。
4)properties:该字段的子字段。
3、创建索引库
ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mapping的DSL语法如下:
PUT /索引库名称
{
"mappings": {
"properties": {
"字段名":{
"type": "text", //分词
"analyzer": "ik_smart" //指定分词器
},
"字段名2":{
"type": "keyword", //不分词
"index": "false" //不创建倒排索引,不参与搜索
},
"字段名3":{
"type": "object", //对象类型
"properties": {
"子字段": {
"type": "keyword"
}
}
},
// ...略
}
}
}
# 创建索引库
PUT /my_index
{
"mappings": {
"properties": {
"info":{
"type": "text",
"analyzer": "ik_smart"
},
"email":{
"type": "keyword",
"index": false
},
"name":{
"type": "object",
"properties": {
"firstName":{
"type":"keyword"
},
"lastName":{
"type":"keyword"
}
}
}
}
}
}
运行结果如下所示:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "my_index"
}