一、介绍
"""
数据库:库、表、数据(每一条)、字段
ElasticSearch:索引、类型、数据(每一条)、属性
类别两者,数据库中可以建立多个表,而ElasticSearch5.0版本后一条索引仅能对应一个类型
"""
1、GET /* # 获取所有数据
2、DELETE /* # 删除所有数据
3、GET _cat/indices?v # 查看所有索引
4、PUT test1/type1/1
{
"name": zqx,
"age": 18
} # 添加数据(继续运行则为按照当前json格式修改数据)
5、GET test1/type1/1 # 查看对应数据
6、DELETE test1 # 删除对应索引下的所有数据
二、增删改查
1、PUT goods/fruit/1
{
"name": "zqx",
"age": 18,
"like": "biancheng"
} # 新增数据
2、GET goods/fruit/1 # 获取数据
3、POST goods/fruit/1/_update
{
"doc": {
"age": 21
}
} # 指定修改部分属性
4、DELETE goods/fruit/1 # 删除ID为1的数据
# 两者查询文档中的属性方式
a. GET goods/fruit/_search?q=age:21
b. GET goods/fruit/_search
{
"query": {
"match": {
"age": 21
}
}
}
三、排序查询
1、查询所有
GET goods/fruit/_search
{
"query": {
"match_all": {}
}
}
2、排序查询
GET goods/fruit/_search
{
"query": {
"match": {
"name": "zqx"
},
"sort": [{
"age": {
"order": "desc"
}
}]
}
}
# 注意:只有数字或者日期可以排序
四、分页查询
1、分页查询(从第几条开始查询,查询几条)
GET goods/fruit/_search
{
"query": {
"match": {
"name": "zqx"
},
"sort": [{
"age": {
"order": "desc"
}
}],
"from": 0,
"size": 2
}
}
2、查询指定属性
GET goods/fruit/_search
{
"query": {
"match_all": {}
},
"_source": ["name", "age"]
}
五、bool查询
1、must(相当于and查询)
GET goods/fruit/_search
{
"query": {
"bool": {
"must": [
{
"match": {"name": "zqx"}
},
{
"match": {"age": 18}
},
]
}
}
}
2、should(相当于or查询)
GET goods/fruit/_search
{
"query": {
"bool": {
"should": [
{
"match": {"name": "zqx"}
},
{
"match": {"age": 18}
},
]
}
}
}
3、must_not(相当于not查询)
六、按条件过滤查询
"""
注意:filter属于bool查询内的过滤条件
注意:如果过滤条件使用should(底下的must改为should),检索的结果可能出现问题,建议使用must关键字
注意:range(lt小于、lte小于等于、gt大于、gte大于等于)
"""
GET goods/fruit/_search
{
"query": {
"bool": {
"must": [
{
"match": {"name": "zqx"}
}
],
"filter": {
"range": {
"age": {"gt": 18}
}
}
}
}
}
七、短语检索
"""
注意:检索数据类型的数据,直接通过全文检索,可以匹配多个值,通过空格间隔
"""
1、GET goods/fruit/_search
{
"query": {
"match": {
"tags": "haochi henda"
}
}
}
2、GET goods/fruit/_search
{
"query": {
"match_phrase": {
"中国你好"
}
}
}
八、高亮检索
"""
注意:前置标签和后置标签需要分开写,符号外双内单
"""
GET goods/fruit/_search
{
"query": {
"match": {
"name": "zqx"
}
},
"highlight": {
"pre_tags": "<b style='color: red' class='key'>",
"post_tags": "</b>",
"fields": {
"name": {}
}
}
}
网友评论