elasticsearch学习笔记——二.querystring查询document方式与dsl查询document方式

本文档介绍了Elasticsearch中querystring查询和DSL查询的区别与使用方法,包括创建索引、批量添加数据、删除数据,以及各种查询操作如全量查询、分页、条件查询、排序等,最后展示了DSL查询中的match、range、term等高级用法。

// 1.创建test_serach索引,指定主要分片数量,副本分片数量,文档中字段的数据类型,分词器,是否作为搜索条件
PUT test_search
{
“settings”: {
“number_of_shards”: 2,
“number_of_replicas”: 1
},
“mappings”: {
“test_type”:{
“properties”:{
“dname”:{
“type”:“text”,
“analyzer”:“standard”
},
“ename”:{
“type”:“text”,
“analyzer”:“standard”
},
“eage”:{
“type”:“long”
},
“hiredate”:{
“type”:“date”
},
“gender”:{
“type”:“keyword”
}
}
}
}
}
// 2.批量向test_search索引中新增文档数据12条
POST test_search/test_type/_bulk
{“index”:{}}
{“dname”:“Sales Department”,“ename”:“张三”,“eage”:20,“hiredate”:“2019-01-01”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Sales Department”,“ename”:“李四”,“eage”:21,“hiredate”:“2019-01-01”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“王五”,“eage”:23,“hiredate”:“2019-01-03”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“赵柳”,“eage”:20,“hiredate”:“2018-01-01”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“韩梅梅”,“eage”:24,“hiredate”:“2019-03-01”,“gender”:“女性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“钱哄”,“eage”:29,“hiredate”:“2018-03-01”,“gender”:“女性”}
{“index”:{}}
{“dname”:“Sales Department”,“ename”:“张三2”,“eage”:20,“hiredate”:“2019-01-01”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Sales Department”,“ename”:“李四2”,“eage”:21,“hiredate”:“2019-01-01”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“王五2”,“eage”:23,“hiredate”:“2019-01-03”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“赵柳2”,“eage”:20,“hiredate”:“2018-01-01”,“gender”:“男性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“韩梅梅2”,“eage”:24,“hiredate”:“2019-03-01”,“gender”:“女性”}
{“index”:{}}
{“dname”:“Development Department”,“ename”:“钱哄2”,“eage”:29,“hiredate”:“2018-03-01”,“gender”:“女性”}
// (参考执行)3.批量删除文档
POST test_search/test_type/_bulk
{“delete”:{"_id":“l-WMEnkBwUn15EIMlpdn”}}
{“delete”:{"_id":“mOWMEnkBwUn15EIMlpdn”}}
{“delete”:{"_id":“k-WKEnkBwUn15EIMtJcX”}}
{“delete”:{"_id":“lOWKEnkBwUn15EIMtJcX”}}
{“delete”:{"_id":“luWKEnkBwUn15EIMtJcX”}}
{“delete”:{"_id":“m-WMEnkBwUn15EIMlpdn”}}
// 4.querystringz方式查询
// 4.1 魔鬼查询
GET test_search/test_type/_search
// 解决:指定时间,超过时间就返回数据,took是多线程每一个县城执行时间的和,至少是 分片数+1 的线程
GET test_search/test_type/_search?timeout=1ms
// 4.1 查询所有索引下数据
GET _search
// 4.1 查询指定索引下数据
GET wmr_index,test_search,test_index1/_search
// 4.1 查询指定索引下数据
GET test*/_search
// 4.1 查询所有索引下数据
GET _all/_search
// 4.2分页查询
GET test_search/test_type/_search?size=18
// 4.2 分页查询,0是第一条数据
GET test_search/_search?from=0&size=1
// 4.3 条件查询,q去查询所有字段
GET test_search/_search?q=24
// 4.3 条件查询,不支持utf-8。失败
GET test_search/_search?q=女性
// 4.3条件查询,指定字段查询:分割
GET test_search/_search?q=eage:21
// 4.4±查询,-除了年龄是21的文档都返回
GET test_search/_search?q=-eage:21
// 4.5排序
GET test_search/_search?sort=eage
// 5.dsl查询方式 支持utf-8中文不会乱码
GET test_search/_search
{
“query”:{
“match_all”:{}
}
}
GET test_search/_search
{
“query”:{
“match”:{
“ename”:“李四”// 可查出来文档
}
}
}
GET test_search/_search
{
“query”:{
“match_phrase”:{
“ename”:“李四2”
}
}
}
GET test_search/_search
{
“query”: {
“range”: {
“eage”: {
“gte”: 20,
“lte”: 23
}
}
}
}
GET test_search/_search
{
“query”: {
“range”: {
“hiredate”: {
“gte”: “2018-01-01”,
“lte”: “2019-01-01”
}
}
}
}
GET test_search/_search
{
“query”: {
“term”: {
“dname”:“Sales Department”
}
}
}
GET test_search/_search
{
“query”: {
“bool”: {
“must”: [
{“range”:{
“eage”:{
“lte”: 26,
“gte”: 20
}
}},{
“match”: {
“ename”: “张三”
}
},{
“match”: {
“dname”: “Sales Department”
}
}
]
}
}
}
GET test_search/_search
{
“query”: {
“match_all”: {
}
},
“sort”:[
{
“hiredate”: {
“order”: “desc”
}
},
{
“eage”: {
“order”: “asc”
}
}
],
“from”:1,
“size”:2
}
GET test_search/_search
{
“query”: {
“match”: {
“ename”: “韩梅梅”
}
}
, “highlight”: {
“fields”: {
“ename”:{
“fragment_size”:3,
“number_of_fragments”:1
}
},
“pre_tags”: “”,
“post_tags”: “

}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值