首页 > 其他分享 >ElasticSearch 实现分词全文检索 - 高亮查询

ElasticSearch 实现分词全文检索 - 高亮查询

时间:2023-03-20 09:13:18浏览次数:48  
标签:高亮 实现 查询 全文检索 ElasticSearch 分词

目录

ElasticSearch 实现分词全文检索 - 概述
ElasticSearch 实现分词全文检索 - ES、Kibana、IK安装
ElasticSearch 实现分词全文检索 - Restful基本操作
ElasticSearch 实现分词全文检索 - Java SpringBoot ES 索引操作
ElasticSearch 实现分词全文检索 - Java SpringBoot ES 文档操作
ElasticSearch 实现分词全文检索 - 测试数据准备
ElasticSearch 实现分词全文检索 - term、terms查询
ElasticSearch 实现分词全文检索 - match、match_all、multimatch查询
ElasticSearch 实现分词全文检索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查询
ElasticSearch 实现分词全文检索 - Scroll 深分页
ElasticSearch 实现分词全文检索 - delete-by-query
ElasticSearch 实现分词全文检索 - 复合查询
ElasticSearch 实现分词全文检索 - filter查询
ElasticSearch 实现分词全文检索 - 高亮查询
ElasticSearch 实现分词全文检索 - 聚合查询 cardinality 以下待发布
ElasticSearch 实现分词全文检索 - 经纬度查询
ElasticSearch 实现分词全文检索 - 搜素关键字自动补全(suggest)
ElasticSearch 实现分词全文检索 - SpringBoot 完整实现 Demo 附源码

数据准备

ElasticSearch 实现分词全文检索 - 测试数据准备

高亮查询

高亮查询,就是用户输入的关键字,以一定的特殊样式展示给用户,让用户知道为什么这个结果被检索出来
高亮展示的数据,本身就是文档中的一个Field,单独将Field以highlight的形式返回
ES提供了一个 highlight 属性,和 query 同级别的

  • fragment_size:指定返回多少个高亮数据,默认100
  • pre_tags:指定前缀标签 <font color="red">
  • post_tags:指定后缀标签 </font>
  • fields:指定哪几个字段以高亮形式返回
# highlight 查询
POST /sms-logs-index/_search
{
  "query": {
    "match":{
      "smsContent": "江苏"
    }
  },
  "highlight": {
    "fields": {
      "smsContent": {} #指定哪几个字段以高亮形式返回
    },
    "pre_tags": "<font color='red'>",
    "post_tags": "</font>"
  }
}

Java

@Test
void highlightQuery() throws Exception {
    String indexName = "sms-logs-index";
    RestHighLevelClient client = ESClient.getClient();

    //1. 创建SearchRequest对象
    SearchRequest request = new SearchRequest(indexName);

    //2. 指定查询条件
    SearchSourceBuilder builder = new SearchSourceBuilder();
    builder.query(QueryBuilders.matchQuery("smsContent","江苏"));

    HighlightBuilder highlightBuilder = new HighlightBuilder();
    highlightBuilder.field("smsContent",10)
            .preTags("<font color='red'>")
            .postTags("</font>");
    builder.highlighter(highlightBuilder);
    request.source(builder);

    //3. 执行查询
    SearchResponse resp = client.search(request, RequestOptions.DEFAULT);

    //4. 输出返回值
    for (SearchHit hit : resp.getHits().getHits()) {
        System.out.println(hit.getHighlightFields());
    }
}

标签:高亮,实现,查询,全文检索,ElasticSearch,分词
From: https://www.cnblogs.com/vipsoft/p/17171376.html

相关文章

  • 分布式搜索-elasticsearch
    学习黑马-SpringCloud微服务技术栈项目的分布式搜索章节自行整理的笔记,方便日后的重构。项目涉及技术知识点是按照集数依次整理,方便日后回来查找。考虑到不是固定的联......
  • elasticsearch添加拼音分词搜索
    分词器是es当中的一个组件,通俗来讲,就是将搜索的条件按照语义进行拆分,分词为多个词语,es会讲text格式的字段按照分词器的结果进行分词,并编排成倒排索引,正因为如此,es的查询速......
  • elastic search ik分词器安装
    目录elasticsearchik分词器安装ik安装下载地址安装ik分词器elasticsearchik分词器安装ik安装下载地址下载ES版本对应的分词器即可https://github.com/medcl/elast......
  • elasticsearch 安装常见报错
    目录elasticsearch安装常见报错报错信息问题解决系统安装场景下解决docker-compose安装场景下解决elasticsearch安装常见报错报错信息memorylockingrequestedfore......
  • ElasticSearch 实现分词全文检索 - filter查询
    目录ElasticSearch实现分词全文检索-概述ElasticSearch实现分词全文检索-ES、Kibana、IK安装ElasticSearch实现分词全文检索-Restful基本操作ElasticSearch......
  • Springboot 整合 elasticsearch 8.x版本冲突
    Springboot整合elasticsearch版本冲突Springboot整合elasticsearchmaven依赖应与elasticsearch服务端版本一致java.lang.IllegalStateException:Failedtoloa......
  • elasticsearch设置/修改密码
    elasticsearch设置密码1.进入到lelasticsearch目录下的config目录,找到elasticsearch.yml文件,在里面添加如下命令并重启:xpack.security.enabled:truexpack.license.sel......
  • elasticSearch配合go基本使用
    一。连接packagemodelimport("fmt""github.com/olivere/elastic/v7")varEsClient*elastic.Clientfuncinit(){//注意IP和端口EsClient,err=elastic.......
  • springboot中配置elasticSearch
    1.1.1 在build.gradle中添加需要的jar包   我创建的gradle工程,对应的maven工程也是一样,添加对应的jar包即可//添加SpringDataElasticsearch的依赖comp......
  • windows下安装elasticsearch
    下载地址:https://www.elastic.co/downloads/elasticsearch下载head地址:https://codechina.csdn.net/mirrors/mobz/elasticsearch-head?utm_source=csdn_github_accelerato......