基础知识:
query与filter区别:query查询默认会计算每个返回文档的得分,然后根据得分排序。而过滤(filter)只会筛选出符合的文档,并不计算得分,且它可以缓存文档。所以,单从性能考虑,过滤比查询更快。换句话说,过滤适合在大范围筛选数据,而查询则适合精确匹配数据。一般应用时,应先使用过滤操作过滤数据,然后使用查询匹配数据。
#用的是安装kibana后自带的导入的kibana_sample_data_logs
#查看index的mapping信息
GET /kibana_sample_data_logs/_mapping
#获取总数
GET /kibana_sample_data_logs/_count
#返回全部
GET /kibana_sample_data_logs/_search
{
"query": {
"match_all": {}
},
"from": 0,
"size": 20
}
#获取单文档
GET /kibana_sample_data_logs/_doc/niNPs3MBDmOlej3AuFIt
#全部更新
POST /kibana_sample_data_logs/_doc/niNPs3MBDmOlej3AuFIt
{
"host":"test"
}
#部分更新
POST /kibana_sample_data_logs/_doc/niNPs3MBDmOlej3AuFIt/_update
{
"doc": {
"host":"artifacts.elastic.com"
}
}
#删除
DELETE /kibana_sample_data_logs/_doc/niNPs3MBDmOlej3AuFIt
#模糊搜索
GET /kibana_sample_data_logs/_search
{
"query": {
"bool": {
"must": [
{
"match_all": {}
},
{
"wildcard": {
"agent": "*Mozilla*"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 20,
"sort": [],
"aggs": {}
}
#验证查询条件是否有效
GET /kibana_sample_data_logs/_validate/query
{