空搜索
搜索API的最基础的形式是没有指定任何查询的空搜索 ,它简单地返回集群中所有索引下的所有文档,如下命令:
GET /_search
返回如下结果:
查询结果解释:
1,hits
返回结果中最重要的部分是 hits ,它 包含 total 字段来表示匹配到的文档总数,并且一个 hits 数组包含所查询结果的前十个文档。
2,took
took 值告诉我们执行整个搜索请求耗费了多少毫秒。
3,timeout
timed_out 值告诉我们查询是否超时。默认情况下,搜索请求不会超时。 如果低响应时间比完成结果更重要,你可以指定 timeout 为 10 或者 10ms(10毫秒),或者 1s(1秒)。以下命令:
GET /_search?timeout=10ms
查询字符串
查询字符串搜索非常适用于通过命令行做即席查询,比如我们的需求是:
- system_code字段包含Ubtrip。
- message字段包含云凯或者本京。
所以查询字符串为:?q=system_code:Ubtrip+message:(云凯 本京),所以完整的查询命令为:
GET /log/debuglog/_search?q=system_code:Ubtrip+message:(云凯 本京)
查询表达式
相较查询字符串,查询表达式更灵活,更强大。
一个查询表达式的典型结构为:
{
QUERY_NAME: {
ARGUMENT: VALUE,
ARGUMENT: VALUE,...
}
}
如果是针对某个字段,那么它的结构为:
{
QUERY_NAME: {
FIELD_NAME: {
ARGUMENT: VALUE,
ARGUMENT: VALUE,...
}
}
}
比如:使用查询表达式来查询所有数据,使用到了match_all查询,表达式命令为:
GET /log/debuglog/_search { "query": { "match_all": {} } }
查询结果为:
比如:我要查询system_code字段包含Ubtrip的数据,使用到了match查询,查询表达式语句为:
GET /log/debuglog/_search { "query": { "match": { "system_code": "Ubtrip" } } }
查询结果为:
分类:
Elasticsearch
标签:
Elasticsearch系列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架