elastic search query & filter & query_string
一、基本概念
1、query时,如何指定返回哪些字段
希望返回name和date字段
希望返回以location.*为前缀的字段以及date字段;不希望返回location.geolocation字段。
2、如何对检索到的结果进行排序
3、同时使用多种限制进行查询
4、response中各个字段分别是什么意思
5、在某个字段中查找含有指定字段的记录
6、query和filter有何区别?
query是模糊匹配,filter是yes/no匹配。正因如此,filter会比query运行起来快很多。
7、如何使用filter来约束query的搜索结果
二、几种常用的搜索方式
1、match_all 搜索
match_all顾名思义就是会返回所有指定index下的document。一般来说,它会配合filter进行使用,用来提取满足某些条件的document。例如:
其中,get-together为index名。
2、query_string 搜索
最简单的query_string的用法为:
默认情况下,query_string会检索 _all 字段,这个字段会将document内所有的字段打包在一起。若想要指定query_string搜索的字段,那么可以在query语法内,使用诸如"description:nosql"或设置默认字段 default_field: description,例如:
如此,由于query语法内未指定搜索的字段,那么query_string将在default_field指定的description字段下搜索含有nosql的document。
3、AND OR 及 exclude 操作
例如,要搜索名字中含有nosql字样,但description中不含有mongodb字样的document
4、如何在指定时间范围内进行搜索
5、在哪能查到query_string的所有语法
http://www.lucenetutorial.com/lucene-query-syntax.html
query_string虽然提供了丰富而强大的语法,但是若使用过于复杂的语法会导致阅读难度陡增。例如下面这段query_string:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构