目录

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. 数据驱动DDT(Data-Driven Tests):测试数据的参数化

    准备第三方库: 首先安装ddt库,其次在脚本中引入ddt 打开官网 https://pypi.org/project/ddt/ from ddt import ddt,data,unpack @ddt ...

  2. 网络编程之 urllib 模块

    首先urlib并不是一个很好用的方法,这里仅作简单介绍.一般我们用requests方法来代替urlib方法. 1. get请求 1 from urllib import request 2 url = ...

  3. python机器学习——线性回归方法

    背景与原理: 线性回归是机器学习建模中最为简单的模型,也是计算起来最为直观的模型 所谓线性回归,我们要建立的是这样的模型:对一组数据,每组数据形如$(x_{1},...,x_{n},y)$,我们希望构 ...

  4. pytest与allure的使用

    --需要先安装pytest [1]数据驱动@pytest.mark.parametrize: @pytest.mark.parametrize只对于同一用例不同数据的传参 ①只有一个参数时 datat ...

  5. 【逆向】使用IDA Python脚本自动化解密字符串数据

    前言 一个肚脑虫(Donot)APT组织的下载器样本,样本中的一些关键字符串数据需要使用指定函数进行动态解密.所以正好借此机会记录下怎么使用IDA Python脚本来解密字符串数据.使用IDA Pyt ...

  6. java 操作excel

    需要引入的包 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.HorizontalAlignmen ...

  7. postgresql Extract 函数的使用

    Extract 属于 SQL 的 DML(即数据库管理语言)函数,同样,InterBase 也支持 Extract,它主要用于从一个日期或时间型的字段内抽取年.月.日.时.分.秒数据,因此,它支持其关 ...

  8. 在vscode中用tsc编译ts文件的时候报错,tsc : 无法加载文件,因为在此系统上禁止运行脚本;SecurityError

    1. TypeScript安装成功,在C盘的Administrator目录下,运行 tsc -v 也可看到TypeScript的版本.  2. 但在vscode中的时候运行tsc 编译ts文件的时候报 ...

  9. SpringBoot - Lombok使用详解1(基本介绍、安装配置、var和val)

    我们创建 POJO 类时,经常需要先写属性,然后手写或者自动生成 get 和 set 方法,然后还要重写 toString 方法....一系列操作下来,这个 POJO 类便会产生太多的样板式代码. 这 ...

  10. 字符串替换Replace仅替换第一个匹配项

    C#里面的String.Replace(string,string)方法替换的时候是替换所有的匹配项,但是有时候我们会遇到这样的需求,就是只替换第一个匹配项. 我这里自己写另一个方法来实现这个功能,求 ...