【Elasticsearch】05-DSL查询

1. 查询所有

es最多只支持查询1万条数据。

java 复制代码
# 查询所有
GET /items/_search
{
  "query": {
    "match_all": {}
  }
}

2. 叶子查询

    1. 全文检索

会对结果进行相关度打分。

java 复制代码
# 检索单个字段
GET /items/_search
{
  "query": {
    "match": {
      "name": "脱脂牛奶"
    }
  }
}

# 检索多个字段
GET /items/_search
{
  "query": {
    "multi_match": {
      "query": "TEXT",
      "fields": ["FIELD1", "FIELD2"]
    }
  }
}
    1. 精确查询

Term-level query,推荐查找keyword、数值、日期、boolean类型的字段。

java 复制代码
# 精确查询
GET /items/_search
{
  "query": {
    "term": {
      "isAD": {
        "value": "true"
      }
    }
  }
}
java 复制代码
# range查询
GET /items/_search
{
  "query": {
    "range": {
      "price": {
        "gte": 100,
        "lte": 200
      }
    }
  }
}
java 复制代码
# ids所有
GET /items/_search
{
  "query": {
    "ids": {
      "values": ["3070884", "4208291"]
    }
  }
}

3. 复合查询

filter也是与,但条件不参与算分。

java 复制代码
GET /items/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "name": "手机"
        }}
      ],
      "should": [
        {"term": {
          "brand": {
            "value": "vivo"
          }
        }},
        {
          "term": {
            "brand": {
              "value": "小米"
            }
          }
        }
      ],
      "must_not": [
        {"range": {
          "price": {
            "gte": 5000
          }
        }}
      ],
      "filter": [
        {"range": {
          "price": {
            "lte": 1000
          }
        }}
      ]
    }
  }
}

4. 排序

排序设置后,不会打分。

分页使用from,size。

java 复制代码
# 排序查询
GET /items/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 20, 
  "sort": [
    {
      "sold": "desc"
    },
    {
      "price": "asc"
    }
  ]
}

5. 分页

方案:

  • search after:分页时需要排序,是从上一次的排序值开始,查询下一页数据。

6. 高亮显示

java 复制代码
# 排序查询
GET /items/_search
{
  "query": {
    "match": {
      "name": "手机"
    }
  },
  "highlight": {
    "fields": {
      "name": {
        "pre_tags": "<em>",
        "post_tags": "</em>"
      }
    }
  }
}
相关推荐
数据智研31 分钟前
【数据分享】腾格里沙漠空间矢量范围
大数据·信息可视化·数据分析
智能化咨询2 小时前
(68页PPT)埃森哲XX集团用户主数据治理项目汇报方案(附下载方式)
大数据·人工智能
数据智研2 小时前
【数据分享】毛乌素沙地(毛乌素沙漠)空间矢量范围
大数据·人工智能·信息可视化·数据分析
Linux_Nathan2 小时前
【服务部署】ELFK架构篇之Elasticsearch
elk·elasticsearch·架构
TinpeaV2 小时前
Elasticsearch8(ES)保姆级菜鸟入门教程
大数据·spring boot·elasticsearch·搜索引擎·全文检索·postman
专注数据的痴汉3 小时前
「数据获取」江门统计年鉴(1997-2024)
大数据·人工智能·信息可视化
小王毕业啦3 小时前
2000-2023年 地级市-公路运输相关数据
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据
Element_南笙3 小时前
吴恩达新课程:Agentic AI(笔记11)
大数据·人工智能·笔记·算法·机器学习
paperxie_xiexuo4 小时前
文献综述不是写作任务,而是一次“认知脚手架”的搭建:PaperXie 如何通过结构化输入,帮你把碎片阅读转化为可辩护的学术立场?
大数据·人工智能·ai写作
B站_计算机毕业设计之家4 小时前
python招聘数据 求职就业数据可视化平台 大数据毕业设计 BOSS直聘数据可视化分析系统 Flask框架 Echarts可视化 selenium爬虫技术✅
大数据·python·深度学习·考研·信息可视化·数据分析·flask