Elasticsearch查询语句,远比你想象的多

前言

之前谈过 Elasticsearch 的基本概况,还有服务端和客户端的使用,这一篇该到重点了---查询语句。正所谓--无搜索,无Elasticsearch,至少,我是这么认为的。那么,ES的搜索语句有哪些呢?其实,它们比你想象中的多!

一.全文本查询

1) 例如:查询全部数据,按number顺序排序,并从第11条开始,取10条

GET /demo/_search(为方便展示,除特别表示,以下皆用此样例做请求接口)

{

"query":{

"match_all":{

}

},

"sort":[

{

"number":"asc"

}

],

"from":10,

"size":10

}

2)单字段查询,例子:查询query_field里含有value全部或部分字符串的数据

{

"query":{

"match":{

"query_field":"value"

}

}

}

3)单字段查询,例子:完全匹配value值

{

"query":{

"match_phrase":{

"query_field":"value"

}

}

}

4)多字段模糊匹配查询,例:在country和name两个字段里模糊匹配value值

{

"query":{

"multi_match":{

"query":"value",

"fields":[

"country",

"name"

]

}

}

}

5)语法查询,组合and or 等逻辑词,例:

{

"query":{

"query_string":{

"query":"(China AND Ada) OR 18"

}

}

}

可以指定字段:

{

"query":{

"query_string":{

"query":"Chine OR Ada",

"fields":[

"country",

"name"

]

}

}

}

二。字段级查询

1)字段查询,例:查询age字段为18的数据 (term是完全匹配检索, 要用在不分词的字段上, 如果某个field在映射中被分词了, term检索将不起作用.

所以, 不分词的field, 要在mapping中设置为 false,即 indes ->false )

{

"query":{

"term":{

"age":18

}

}

}

2) terms 检索,terms,相当于多个term检索, 类似于SQL中in关键字的用法, 即在某些给定的数据中检索,例:

{

"query":{

"terms":{

"keyword":[

"Java编程思想",

"Java并发编程的艺术"

]

}

}

}

3)范围查询,例:查age字段大于等于18,小于30的数据

{

"query":{

"range":{

"age":{

"gte":18,

"lt":30

}

}

}

}

三。其他复合查询

1)主要是bool查询,条件有should、must、must_not等,可以组合filter

例子1:name字段模糊匹配test,或country字段模糊匹配China,并筛选出age字段大于18 的数据

{

"query":{

"bool":{

"should":[

{

"match":{

"name":"test"

}

},

{

"match":{

"country":"China"

}

}

],

"filter":[

{

"range":{

"age":{

"gt":18

}

}

}

]

}

}

}

例子2:在所有数据里(一般默认最多出来10000条,可配置),查询余额大于2万小于3万的数据

{

"query":{

"bool":{

"must":{

"match_all":{

}

},

"filter":{

"range":{

"balance":{

"gte":20000,

"lte":30000

}

}

}

}

}

}

例子3. boost评分权重 - 控制文档的优先级别

通过boost参数, 令满足某个条件的文档的得分更高, 从而使得其排名更靠前.例:

{

"query": {

"bool": {

"must": [

{"match": {"name":"编程秘籍"} }

],

"should": [

{

"match": {

"name": {

"query":"艺术",

"boost":2// 提升评分权重

                        }

                    }

                }

            ]

        }

    }

}

2)多重查询,例:

POST /_msearch

{"index":"my_test1"}

{"query":{"match_all":{}}}

{"index":"my_test2"}

{"query":{"match":{"name":"张三"}}}

3)异步查询,例:

POST /demo_index/_async_search?size=0

{

"sort":[

{

"date":{

"order":"asc"

}

}

],

"aggs":{

"sale_date":{

"date_histogram":{

"field":"date",

"calendar_interval":"1d"

}

}

}

}


至此,关于ES的搜索语句就介绍到这里了,下回该讲讲别的了吧~


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352