ElasticSearch 搜索高亮与排序

2年前 (2022) 程序员胖胖胖虎阿
193 0 0

松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->松哥要升级 SpringBoot 视频了,看看新增了哪些内容!


又到周五啦~今天来个简单的!Es 搜索高亮与排序。

以下是视频笔记:

注意,笔记只是视频内容的一个简要记录,因此笔记内容比较简单,完整的内容可以查看视频。

21.1 搜索高亮

普通高亮,默认会自动添加 em 标签:

GET books/_search
{
  "query": {
    "match": {
      "name""大学"
    }
  },
  "highlight": {
    "fields": {
      "name": {}
    }
  }
}

查询结果如下:

ElasticSearch 搜索高亮与排序
image-20201127170236189

正常来说,我们见到的高亮可能是红色、黄色之类的。

可以自定义高亮标签:

GET books/_search
{
  "query": {
    "match": {
      "name""大学"
    }
  },
  "highlight": {
    "fields": {
      "name": {
        "pre_tags": ["<strong>"],
        "post_tags": ["</strong>"]
      }
    }
  }
}

搜索结果如下:

ElasticSearch 搜索高亮与排序
image-20201127170458679

有的时候,虽然我们是在 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>"]
      }
    }
  }
}

搜索结果如下:

ElasticSearch 搜索高亮与排序
image-20201127170726795

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 系列其他文章:

  1. 打算出一个 ElasticSearch 教程,谁赞成,谁反对?
  2. ElasticSearch 从安装开始
  3. ElasticSearch 第三弹,核心概念介绍
  4. ElasticSearch 中的中文分词器该怎么玩?
  5. ElasticSearch 索引基本操作
  6. ElasticSearch 文档的添加、获取以及更新
  7. ElasticSearch 文档的删除和批量操作
  8. ElasticSearch 文档路由,你的数据到底存在哪一个分片上?
  9. ElasticSearch 并发的处理方式:锁和版本控制
  10. ElasticSearch 中的倒排索引到底是什么?
  11. ElasticSearch 动态映射与静态映射
  12. ElasticSearch 四种字段类型详解
  13. ElasticSearch 中的地理类型和特殊类型
  14. ElasticSearch 23 种映射参数详解
  15. ElasticSearch 如何配置某个字段的权重?
  16. ElasticSearch 23 种映射参数详解【3】
  17. ElasticSearch 映射模版
  18. ElasticSearch 搜索入门
  19. ElasticSearch 全文搜索怎么玩?
  20. ElasticSearch 打错字还能搜索到?试试 fuzzy query!
  21. ElasticSearch 复合查询,理解 Es 中的文档评分策略!
  22. 想搜索附近评分较高的餐厅,ElasticSearch 大显身手!
  23. ElasticSearch 如何像 MySQL 一样做多表联合查询?
  24. ElasticSearch 地理位置查询与特殊查询






往期推荐
0
1

50+ 需求文档免费下载!

0
2

Spring Security 教程合集

0
3

接了两个私活,都是血汗钱

ElasticSearch 搜索高亮与排序

本文分享自微信公众号 - 江南一点雨(a_javaboy)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

版权声明:程序员胖胖胖虎阿 发表于 2022年10月7日 上午3:56。
转载请注明:ElasticSearch 搜索高亮与排序 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...