• ES高亮显示语法


    目录

    目标

    ES版本信息

    官方文档

    创建索引

    索引文档

    实战

    基本语法

    多字段高亮显示

    自定义高亮样式


    目标

    掌握es高亮显示语法,包括自定义高亮标签属性、多字段高亮显示。


    ES版本信息

    7.17.5


    官方文档

    Highlightinghttps://www.elastic.co/guide/en/elasticsearch/reference/7.9/highlighting.html


    创建索引

    1. PUT /products_db
    2. {
    3. "settings": {
    4. "index": {
    5. "analysis.analyzer.default.type": "ik_max_word"
    6. }
    7. }
    8. }

    索引文档

    1. PUT /products_db/_bulk
    2. {"index":{"_id":"1"}}
    3. {"proId":1,"prodName":"苹果13","title":"【24期免息 可选13promax】现货速发/Apple/苹果13 iPhone13手机可选苹果5G新品苹果官方旗舰店正品"}
    4. {"index":{"_id":"2"}}
    5. {"proId":2,"prodName":"苹果13","title":"【24期免息】苹果13 iphone13 Apple/苹果iPhone 13 5G手机官方旗舰正品官网苹果13手机iPhone13手机"}
    6. {"index":{"_id":"3"}}
    7. {"proId":3,"prodName":"李宁v8跑步鞋","title":"李宁v8跑步鞋女鞋新款风铃灰老爹鞋透气情侣运动鞋潮流休闲鞋男鞋"}
    8. {"index":{"_id":"4"}}
    9. {"proId":4,"prodName":"李宁休闲鞋","title":"LI-NING 1990李宁1990夏季女士蝴蝶休闲鞋"}
    10. {"index":{"_id":"5"}}
    11. {"proId":5,"prodName":"千井惠休闲鞋","title":"狮冬季白色鞋子韩版潮流春秋运动休闲板鞋男生小白鞋学生百搭白潮"}
    12. {"index":{"_id":"6"}}
    13. {"proId":6,"prodName":"张裕红酒","title":"张裕红酒 特选级干红葡萄酒圆筒750mlx6瓶婚庆婚宴年货送礼"}
    14. {"index":{"_id":"7"}}
    15. {"proId":7,"prodName":"安踏男鞋跑步鞋","title":"安踏男鞋跑步鞋2022夏季新款跑鞋官网官方旗舰店正品男款运动鞋男"}

    实战

    基本语法

    需求:搜索关键词为"李宁跑步鞋",匹配字段为title,要求title字段的分词显示高亮。

    第一步:对关键词"李宁跑步鞋"进行分词。这里用的是IK分词器。

    1. POST _analyze
    2. {
    3. "analyzer": "ik_max_word",
    4. "text": "李宁跑步鞋"
    5. }

    第二步:搜索。

    1. GET /products_db/_search
    2. {
    3. "query": {
    4. "match": {
    5. "title": "李宁跑步鞋"
    6. }
    7. },
    8. "highlight": {
    9. "fields": {
    10. "title": {}
    11. }
    12. }
    13. }

    多字段高亮显示

    参数:默认情况下只能将搜索字段的分词显示高亮,即require_field_match默认为true。将该参数设置为false则所有字段可以显示高亮。

    需求一:搜索关键词为"李宁跑步鞋",匹配字段为title,要求title字段,prodName字段的分词显示高亮。

    1. GET /products_db/_search
    2. {
    3. "query": {
    4. "match": {
    5. "title": "李宁跑步鞋"
    6. }
    7. },
    8. "highlight": {
    9. "require_field_match": "false",
    10. "fields": {
    11. "title": {},
    12. "prodName": {}
    13. }
    14. }
    15. }

    需求二:搜索关键词为"李宁跑步鞋",匹配字段为title,要求所有字段的分词显示高亮。

    1. GET /products_db/_search
    2. {
    3. "query": {
    4. "match": {
    5. "title": "李宁跑步鞋"
    6. }
    7. },
    8. "highlight": {
    9. "require_field_match": "false",
    10. "fields": {
    11. "*": {}
    12. }
    13. }
    14. }

    自定义高亮样式

    pre_tags参数:前置标签。默认为,即高亮样式默认为标签。

    post_tags参数:后置标签。默认为,即高亮样式默认为标签。

    需求:自定义高亮标签为,设置字体为红色。

    1. GET /products_db/_search
    2. {
    3. "query": {
    4. "match": {
    5. "title": "李宁跑步鞋"
    6. }
    7. },
    8. "highlight": {
    9. "pre_tags": [
    10. ""
    11. ],
    12. "post_tags": [
    13. ""
    14. ],
    15. "require_field_match": "false",
    16. "fields": {
    17. "*": {}
    18. }
    19. }
    20. }
  • 相关阅读:
    ubuntu 安装卸载 deb软件
    最新Unity DOTS教程之BlobAsset核心机制分析
    C# BackgroundWorker原理图
    2022年12月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
    如何修改glog由进程生成日志为按天输出日志
    Android studio连接MySQL并完成简单的登录注册功能
    【尚硅谷React】——React全家桶笔记
    【测试】时间轴实现
    “Cloud“(云)
    七夕给女朋友准备的小惊喜网站制作(html+css+js)
  • 原文地址:https://blog.csdn.net/qq_39706570/article/details/126257052