Elasticsearch 搜索Search API(7.5.0)
一、Search API
1. search:官网Search API
A. 请求:GET / POST /<index>/_search | /_search
{
"query": {<parameters>}
}
请求参数:index是索引名称,多个以逗号分隔
parameters是DSL语句,用来搜索请求,查询DSL
B. 查询参数:
字段 | 说明 |
from | 起始值(页码) |
size | 返回的匹配数量(每页条数),默认10,注意:size = 0是特殊搜索,只返回匹配查询的文档数 |
sort | 排序 |
_source_excludes | 查询排除指定字段 |
_source_includes | 查询指定字段 |
C. 结果参数
字段 | 说明 | ||||||||||||||
took | es执行请求时间(毫秒) | ||||||||||||||
hits |
|
D. kibana操作
2. Multi Search:官网Multi-Search API
3. Search Scroll
4. Count
A. 用于执行查询并获取查询匹配的数目
B.
C. Java实现
private long getUserEventById(String yearMonth, Long id) { BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery() .filter(QueryBuilders.termQuery("type", ReportLogType.AUTH_LOG.getType())) .mustNot(QueryBuilders.termQuery("auth.status", LogConstants.STATUS_SUCCESS)) .filter(QueryBuilders.termQuery("user.userId", id)); SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.query(boolQueryBuilder); CountRequest countRequest = new CountRequest(String.format("%s_%s_%s", IndexName.RWS_REPORT_LOG, tenantContext.getTenantId(), yearMonth.replace("-", "."))); countRequest.source(sourceBuilder); try { // 统计身份认证异常数据 CountResponse countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT); return countResponse.getCount(); } catch (IOException e) { e.printStackTrace(); return 0; } }
5. Async search: 异步搜索允许用户提交一个搜索请求,然后在后台处理这个请求,而用户可以继续执行其他操作。当搜索结果准备好后,用户可以在之后的时间点获取结果。这对于长时间运行的复杂搜索任务非常有用,比如深度聚合查询或者跨多个大型索引的搜索。
二、Search your data
1. Collapse search results:使用collapse参数根据字段值折叠搜索结果,只返回少量的数据。
field:指定字段来折叠结果集
sort:对结果进行排序;
from:定义第一个折叠结果的偏移量
可参考:ES官网 搜索Search
分类:
Elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗