目录

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 实现分词全文检索 - 高亮查询的更多相关文章

  1. springboot ElasticSearch 简单的全文检索高亮

    原文:https://segmentfault.com/a/1190000017324038?utm_source=tag-newest 首先引入依赖 <dependency> <g ...

  2. ElasticSearch(十三):Spring Data ElasticSearch 的使用(三)——NativeSearchQuery 高亮查询

    在Elasticsearch的实际应用中,经常需要将匹配到的结果字符进行高亮显示,此处采取NativeSearchQuery原生查询的方法,实现查询结果的高亮显示. /** * 高亮查询 */ @Te ...

  3. SpringBoot整合Elasticsearch+ik分词器+kibana

    话不多说直接开整 首先是版本对应,SpringBoot和ES之间的版本必须要按照官方给的对照表进行安装,最新版本对照表如下: (官网链接:https://docs.spring.io/spring-d ...

  4. es的查询、排序查询、分页查询、布尔查询、查询结果过滤、高亮查询、聚合函数、python操作es

    今日内容概要 es的查询 Elasticsearch之排序查询 Elasticsearch之分页查询 Elasticsearch之布尔查询 Elasticsearch之查询结果过滤 Elasticse ...

  5. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

  6. 第三百六十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的bool组合查询

    第三百六十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的bool组合查询 bool查询说明 filter:[],字段的过滤,不参与打分must:[] ...

  7. elasticsearch kibana + 分词器安装详细步骤

    elasticsearch kibana + 分词器安装详细步骤 一.准备环境 系统:Centos7 JDK安装包:jdk-8u191-linux-x64.tar.gz ES安装包:elasticse ...

  8. PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

    PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...

  9. ElasticSearch中文分词(IK)

    ElasticSearch常用的很受欢迎的是IK,这里稍微介绍下安装过程及测试过程.   1.ElasticSearch官方分词 自带的中文分词器很弱,可以体检下: [zsz@VS-zsz ~]$ c ...

  10. 实战ELK(8) 安装ElasticSearch中文分词器

    安装 方法1 - download pre-build package from here: https://github.com/medcl/elasticsearch-analysis-ik/re ...

随机推荐

  1. CPU密集型和IO密集型与线程池的配置

    CPU密集型任务应配置尽可能小的线程,如配置CPU数目+1个线程的线程池.由于IO密集型任务线程并不是一直在执行任务,则应配置尽可能多的线程,如2*CPU数目.

  2. mysq 报错, sql语句在数据库里运行正常, 在内网测试正常,打包放外网的时候就报下面错误

    sql语句为: select t1.day as day , any_value(IFNULL(t2.avgNum,0)) as avgNum, any_value(IFNULL(t2.maxNum, ...

  3. 2020第十一届蓝桥杯大赛软件类国赛题目 C/C++ B 组

    试题 A: 美丽的 2 本题总分:5 分 问题描述:在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2? #include <stdio.h> #include ...

  4. stream 在 groupingby 之后,对结果数据再进行封装后返回

    使用 Collectors.mapping 来指定 分组结果要取哪些数据

  5. Vue.js + TypeScript 项目构建

    一:全局安装vue/cli  npm install -g @vue/cli安装完成后检查版本vue --version 二:构建项目创建文件 vue create projectName 有的刚开始 ...

  6. redis存储类型-数字和带双引号的数字

    这个是不一样的值,出现了转换异常

  7. daimayuan第二课(1.二叉树的遍历,2.二叉树的最近公共祖先,3.二叉搜索树)

    二叉树的最近公共祖先: 1:概念:就是两个节点在这棵树上深度最大的公共的祖先节点. 换句话说,就是两个点在这棵树上距离最近的公共祖先节点. 2:因为是基础课,所以tarjan和倍增lca就留到中级课再 ...

  8. mac 安装 nginx 流程,并解决前端跨域问题

    mac 安装 nginx 流程 首先mac安装brew包管理工具: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN ...

  9. PLC入门笔记9

    梯形图电路之电机控制 电机直接启动控制电路 电机正反停控制电路 我的图.. 但愿最后说的不要发生吧 例如下错了程序 导致... 最好外部电路互锁一下.. 电机故障判断电路 我的图.. 电机故障转换电路 ...

  10. layui中文离线文档PDF下载

    失效链接处理 layui中文离线文档 PDF 下载 本站整理下载: 链接:https://pan.baidu.com/s/18FbllhLEezXTn-y1eiiNKg  提取码:nuqz      ...