Elasticsearch提供了许多的搜寻语法,让我们能透过这些语法的组合,可以查询出各式各样的结果,接下来就开始介绍一些常用的查询语法,来让大家了解一下。
match_all 表示查询所有数据。在没有指定其它查询方式时,是预设查询方式
。
{ "match_all": {}}
match 全文检索的标准查询,会对查询的关键字进行分词,并对每个分词的字串进行查询(预设为or
)。
{ "match": { "name": "Jackson Selena" }}
查询栏位
name
,资料中包含Jackson
或Selena
。
multi_match 可以在在多个栏位来查询资料。
{
"multi_match": {
"query": "Marrakesh Low",
"fields": [ "manufacturer", "city_name" ]
}
}
查询栏位
manufacturer
或city_name
,资料中有包含Marrakesh
或Low
这二个关键字。
range 可查询出落在指定区间的资料
{
"range": {
"age": {
"gte": 20,
"lt": 30
}
}
}
查询资料中
age>=20
并且age<30
的资料。
term可以用来精准搜寻,可以是数字、时间、布林值或者是设定了not_analyzed不分词的字串。
{ "term": { "id": 27 }}
{ "term": { "date": "2014-09-01" }}
{ "term": { "public": true }}
{ "term": { "tag": "full_text" }}
查询
id
值为27
的资料。
查询date
值为2014-09-01
的资料。
查询public
值为true
的资料。
查询tag
值为full_text
的资料。
terms和 term 是相同的用法,只是terms可以搜寻多个字串。
{ "terms": { "id": [ 27, 43 ] }}
查询
id
值为27
或43
的资料。
查询栏位不为空的数据(column is not null)。
{
"exists": {
"field": "title"
}
}
查询数据中栏位
title
不为空的资料。
<<: Day 11 运算宝石:EC2 储存资源 EBS Types 方案比较
在昨天我们谈完Azure小白想早下班-之-使用Azure Synapse Analytics汇入数P...
介绍: k-平均演算法(英文:k-means clustering,以下简称为 k-means )是...
今日我们将要介绍ES官方提供go-elasticsearch客户端的基本操作。 go-elastic...
前面我们谈了,coroutine的coroutineScope、继承、异常处理和取消,也在文中提到了...
写程序,弄个 IDE 真的会方便不少,如果您是要在 ubuntu 20.04 上面使用 Code::...