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"
}
}}
]
}
}
}