官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
示例1:
# 索引初始化操作
# 指定分片和副本数量
# shards一旦设定不能修改
PUT twitter
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
# 获取索引索引索引
GET twitter/_settings
GET twitter
# 更新索引 更新副本数量
PUT twitter/_settings
{
"settings" : {
"number_of_replicas" : 3
}
}
# 获取索引
GET _all
GET twitter
# 插入数据(es不需要提前定义好type, 就可以往里面放数据)
# 往索引中保存文档 (如果不指定属性类型,es会自动根据属性值猜测其对应的类型,不过建议自己指定类型,因为你一定比es更了解你的数据 )
PUT twitter/job/1
{
"title":"python",
"min_salary":15000,
"city":"上海",
"company": {
"name":"京东",
"company_addr":"xxx软件园"
},
"publish_date":"2019-06-01",
"commnets":15
}
# 根据id查询,获取文档所有内容
GET twitter/job/1
GET twitter/job/1?_source
# 获取指定字段值
GET twitter/job/1?_source=min_salary
# 获取多个字段值
GET twitter/job/1?_source=min_salary,title
#修改文档, 比如删除掉job字段,此时是以覆盖的方式修改。修改时一定要指明id
PUT twitter/job/1
{
"title":"hadoop",
"min_salary":20000,
"company": {
"name":"京东",
"company_addr":"xxx软件园"
},
"publish_date":"2019-06-01",
"commnets":15
}
#增量更新,如将commnets值修改为50
POST twitter/job/1/_update
{
"doc":{
"commnets":50
}
}
# 删除
# 删除文档
DELETE twitter/job/1
# 删除type(报405,es不能删除type)
DELETE twitter/job
# index
DELETE twitter
示例2:
# 建一个 Index,并指定需要分词的字段
PUT /accounts
{
"mappings": {
"person": {
"properties": {
"user": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"title": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"desc": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
}
}
}
}
# 新增记录 1
# 没指定id,要用POST, 而不是PUT
POST accounts/person
{
"user": "张三",
"title": "工程师",
"desc": "数据库管理"
}
# 新增记录 2
PUT accounts/person/2
{
"user": "李四",
"title": "工程师",
"desc": "系统管理"
}
# 新增记录 3
PUT accounts/person/3
{
"user": "李四2",
"title": "工程师",
"desc": "系统管理"
}
GET accounts/person/2
# 删除记录 3
DELETE accounts/person/3
# 修改记录2的desc字段值
PUT accounts/person/2
{
"user": "李四",
"title": "工程师",
"desc": "数据库管理,软件开发"
}
# 返回所有记录
GET accounts/person/_search
# 指定的匹配条件是desc字段里面包含"软件"这个词的全文搜索
GET accounts/person/_search
{
"query" :
{ "match":
{
"desc" : "软件"
}
}
}
# ES 默认一次返回10条结果,可以通过size字段改变这个设置还可以通# 过from字段,指定位移
GET accounts/person/_search
{
"query" :
{ "match":
{
"desc" : "管理"
}
},
"from": 1,
"size": 1
}
# 如果有多个搜索关键字, ES 认为它们是or关系
GET accounts/person/_search
{
"query" :
{ "match":
{
"desc" : "软件 管理"
}
}
}
# 执行多个关键词的and搜索,必须使用布尔查询
GET accounts/person/_search
{
"query": {
"bool": {
"must": [
{ "match": { "desc": "软件" } },
{ "match": { "desc": "管理" } }
]
}
}
}