must 必须符合,filter 必须符合、should 或满足其一即可、must_not 必须不符合
只有must会影响分值计算,可以进行嵌套使用
1.分词或模糊搜索
方式一
{
"query": {
"match": {
"ser_name": "北京"
}
}
}
方式二
{
"query": {
"bool": {
"must": {
"match": {
"ser_name": "北京"
}
}
}
}
}
2.过滤数据后进行分词
数据过滤和模糊搜索
{
"query": {
"bool": {
"must": {
"match": {
"ser_name": "北京"
}
},
"filter": [
{
"term": {
"shop_id": "1000091242"
}
}
]
}
}
}
3.过滤数据,sql 中 in 的条件
数据过滤和模糊搜索
{
"query": {
"bool": {
"filter": [
{
"terms": {
"shop_id": ["1000091242","1000091242"]
}
}
]
}
}
}
4. sql中 a=1 and ( b=1 or c=1) 语法
should 或语法
{
"size": 4,
"query": {
"bool": {
"filter": [
{
"terms": {
"shop_id": [
"1000100229",
"1000016184"
]
}
},
{
"bool": {
"should": [
{
"terms": {
"est_qtty": [
13,
14
]
}
},
{
"term": {
"dept_id_2": "425"
}
}
]
}
}
]
}
}
}
5. 区间搜索
range:区间范围
gte:大于等于
gt:大于
lte:小于等于
lt:小于
{
"size": 4,
"query": {
"bool": {
"filter": [
{"range": {
"order_d7_amount": {
"gte": "1000",
"lte": "10000"
}
}}
]
}
}
}
6. must_not 不满足条件的数据
{
"size": 4,
"query": {
"bool": {
"must_not": [
{"range": {
"order_d7_amount": {
"gte": "1000",
"lte": "10000"
}
}}
]
}
}
}
Elasticsearch查询语法详解
本文详细介绍了Elasticsearch的查询语法,包括must、filter、should和must_not的用法,以及分词、过滤、区间搜索等操作。通过示例展示了如何进行模糊搜索、数据过滤、条件组合以及不满足条件的数据筛选,帮助读者深入理解Elasticsearch的查询能力。

被折叠的 条评论
为什么被折叠?



