DSL 介绍
Query DSL(Domain Specific Language)又叫做查询表达式,是一种丰富的、灵活的、强大的全文本与结构化查询语言,基于 JSON 格式对数据进行检索。前面我们介绍了简单的 ES 查询,但是对于更负责的需求使用 URL 查询显得有些困难,ES 提供了 DSL 查询,使用 DSL 表达式基本上满足各种负责的业务需求,DSL 可以与数据库提供的 SQL 进行类别,有了 SQL 各种查询都可以在数据库中实现,而不用把查询计算逻辑放到业务代码中去。
ES 的查询有两种查询与过滤,ES 的查询涉及到一个重要的概念就是相关性分数,这个分数在 ES 查询结果中 _score 字段中体现出来。像你在 Google 或者百度中查询资料时候,往往是以一种推荐的方式返回查询结果给你,并且有顺序的,排在前面的往往是与你查询问题最接近的内容,这里面就涉及到一个相关性分数,查询的每个结果都有一个相关性分数。
另外还有一种查询方式叫做过滤,过滤的查询结果中是不带有相关性分数的,因为有的时候我们只关注有或者没有,显而易见,不带有相关性分数的少了一层计算相关性分数的过程,那么自然计算速度会比较快。
第一个 DSL 查询,查询索引为 class 的所有数据。
GET class/_search
{
"query": {
"match_all": {}
}
}

字段含义
查
本文详细介绍了ElasticSearch的DSL查询,包括字段含义、Phrase查询、Term查询、范围查询等内容。强调了Term查询与Match查询的区别,以及Text字段与Keyword字段的使用场景。通过实例展示了如何进行精确查询和范围查询,帮助读者更好地理解和应用DSL。
订阅专栏 解锁全文
1114

被折叠的 条评论
为什么被折叠?



