松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->松哥要升级 SpringBoot 视频了,看看新增了哪些内容!
又到周五啦~今天来个简单的!Es 搜索高亮与排序。
以下是视频笔记:
注意,笔记只是视频内容的一个简要记录,因此笔记内容比较简单,完整的内容可以查看视频。
21.1 搜索高亮
普通高亮,默认会自动添加 em 标签:
GET books/_search
{
"query": {
"match": {
"name": "大学"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
查询结果如下:
正常来说,我们见到的高亮可能是红色、黄色之类的。
可以自定义高亮标签:
GET books/_search
{
"query": {
"match": {
"name": "大学"
}
},
"highlight": {
"fields": {
"name": {
"pre_tags": ["<strong>"],
"post_tags": ["</strong>"]
}
}
}
}
搜索结果如下:
有的时候,虽然我们是在 name 字段中搜索的,但是我们希望 info 字段中,相关的关键字也能高亮:
GET books/_search
{
"query": {
"match": {
"name": "大学"
}
},
"highlight": {
"require_field_match": "false",
"fields": {
"name": {
"pre_tags": ["<strong>"],
"post_tags": ["</strong>"]
},
"info": {
"pre_tags": ["<strong>"],
"post_tags": ["</strong>"]
}
}
}
}
搜索结果如下:
21.2 排序
排序很简单,默认是按照查询文档的相关度来排序的,即(_score
字段):
GET books/_search
{
"query": {
"term": {
"name": {
"value": "java"
}
}
}
}
等价于:
GET books/_search
{
"query": {
"term": {
"name": {
"value": "java"
}
}
},
"sort": [
{
"_score": {
"order": "desc"
}
}
]
}
match_all 查询只是返回所有文档,不评分,默认按照添加顺序返回,可以通过 _doc
字段对其进行排序:
GET books/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"_doc": {
"order": "desc"
}
}
],
"size": 20
}
es 同时也支持多字段排序。
GET books/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"price": {
"order": "asc"
}
},
{
"_doc": {
"order": "desc"
}
}
],
"size": 20
}
ElasticSearch 系列其他文章:
-
打算出一个 ElasticSearch 教程,谁赞成,谁反对?
-
ElasticSearch 从安装开始
-
ElasticSearch 第三弹,核心概念介绍
-
ElasticSearch 中的中文分词器该怎么玩?
-
ElasticSearch 索引基本操作
-
ElasticSearch 文档的添加、获取以及更新
-
ElasticSearch 文档的删除和批量操作
-
ElasticSearch 文档路由,你的数据到底存在哪一个分片上?
-
ElasticSearch 并发的处理方式:锁和版本控制
-
ElasticSearch 中的倒排索引到底是什么?
-
ElasticSearch 动态映射与静态映射
-
ElasticSearch 四种字段类型详解
-
ElasticSearch 中的地理类型和特殊类型
-
ElasticSearch 23 种映射参数详解
-
ElasticSearch 如何配置某个字段的权重?
-
ElasticSearch 23 种映射参数详解【3】
-
ElasticSearch 映射模版
-
ElasticSearch 搜索入门
-
ElasticSearch 全文搜索怎么玩?
-
ElasticSearch 打错字还能搜索到?试试 fuzzy query!
-
ElasticSearch 复合查询,理解 Es 中的文档评分策略!
-
想搜索附近评分较高的餐厅,ElasticSearch 大显身手!
-
ElasticSearch 如何像 MySQL 一样做多表联合查询?
-
ElasticSearch 地理位置查询与特殊查询
1
50+ 需求文档免费下载!
2
Spring Security 教程合集
3
接了两个私活,都是血汗钱
本文分享自微信公众号 - 江南一点雨(a_javaboy)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
相关文章
暂无评论...