ES中的模糊查询
1.如果目标字段类型是keyword,可以用wildcard 语法进行查询
{
"wildcard":{
"log_content":{
"wildcard":"*aaa*",
"boost":1
}
}
}
配合使用
{
"query":{
"bool":{
"must":[
{
"terms":{
"resourceId":[
"es-465dilnawj"
],
"boost":1
}
},
{
"wildcard":{
"log_content":{
"wildcard":"*aaa*",
"boost":1
}
}
},
{
"range":{
"time":{
"from":1701844550000,
"to":1701844554000,
"include_lower":true,
"include_upper":true,
"boost":1
}
}
},
{
"term":{
"slowLogType":{
"value":"ES_INDEX",
"boost":1
}
}
}
],
"adjust_pure_negative":true,
"boost":1
}
},
"sort":[
{
"time":{
"order":"desc"
}
}
]
}
java代码
QueryBuilders.wildcardQuery("log_detail.index","*" + param.getIndex() + "*")
2.如果目标字段是text类型,模糊查询使用match查询
{
"match": {
"log_content": {
"query": "天"
}
}
}
配合使用
{
"query": {
"bool": {
"must": [
{
"terms": {
"resourceId": [
"es-465dilnawj"
],
"boost": 1
}
},
{
"match": {
"log_content": {
"query": "天"
}
}
},
{
"range": {
"time": {
"from": 1701844550000,
"to": 1701844554000,
"include_lower": true,
"include_upper": true,
"boost": 1
}
}
},
{
"term": {
"slowLogType": {
"value": "ES_INDEX",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"sort": [
{
"time": {
"order": "desc"
}
}
]
}
java代码
QueryBuilders.matchQuery("log_content",param.getLogContent())
原创:做时间的朋友
分类:
ES
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)