索引操作
注意
Elasticsearch使用RESTful风格的http请求访问操作,请求参数和返回值都是Json格式
请求访问路径:/索引名【在kibana中所有的请求路径我们不用写ip地址:端口号】
创建没有结构的索引
PUT /索引名
为索引添加结构
POST /索引名/_mapping
{
"properties":{
"域名1":{
"type":域的类型,
"store":是否存储,
"index":是否创建索引,
"analyzer":分词器
},
"域名2":{
...
}
}
}
创建有结构的索引
PUT /索引名
{
"mappings":{
"properties":{
"域名1":{
"type":域的类型,
"store":是否单独存储,
"index":是否创建索引,
"analyzer":分词器
},
"域名2":{
...
}
}
}
}
删除索引
DELETE /索引名
文档操作
注意
执行修改操作时,ES不会真的修改Document中的数据,而是标记ES中原有的文档为deleted状态,再创建一个新的文档来存储数据
执行删除操作时,ES先标记文档为deleted状态而非接物理删,当ES存储空间不足或工作空闲时才会执行物理删除操作
新增/修改文档
id值不写时自动生成文档id,id和已有id重复时修改文档
POST /索引/_doc/[id值]
{
"field名":field值
}
修改文档部分字段
POST /索引/_doc/id值/_update
{
"doc":{
域名:值
}
}
根据id查询文档
GET /索引/_doc/id值
根据id批量查询文档
GET /索引/_mget
{
"docs":[
{"_id":id值},
{"_id":id值}
]
}
查询所有文档
GET /索引/_search
{
"query": {
"match_all": {}
}
}
删除文档
DELETE /索引/_doc/id值
域的属性
Index
该域是否创建索引【只有值设置为true,才能根据该域的关键词查询文档】
Type
域的类型
字符串类型 text
整数类型 long, integer, short, byte
浮点类型 double, float
日期类型 date
布尔类型 boolean
数组类型 array
对象类型 object
不分词的字符串 keyword
搜索提示功能 completion
Store
是否单独存储【如果设置为true,则该域能够单独查询】
// 单独查询某个域:
GET /索引名/_search
{
"stored_fields": ["域名"]
}