ElasticSearch汇总请查看:ElasticSearch教程——汇总篇

更多Java操作请移步ElasticSearch教程——Java常用操作

基础环境

注意pom中的jar包版本,最好是和服务器上的elasticsearch版本一致,目前就测试来看,不一致貌似也没啥大的影响

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.elasticsearch</groupId><artifactId>elasticSearch</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>elasticSearch</name><description>Demo project for elasticsearch</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><elsaticsearch.version>6.4.0</elsaticsearch.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>${elsaticsearch.version}</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>${elsaticsearch.version}</version></dependency><dependency><groupId>org.elasticsearch.plugin</groupId><artifactId>transport-netty4-client</artifactId><version>${elsaticsearch.version}</version></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>${elsaticsearch.version}</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>${elsaticsearch.version}</version><type>pom</type></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

HighLight.java

package com.gwd.elasticsearch.test;import java.net.InetAddress;
import java.net.UnknownHostException;import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.text.Text;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.transport.client.PreBuiltTransportClient;/*** Description:* 作者:gu.weidong(Jack)* date:2018年9月18日* ProjectName:elasticSearch*/
public class HighLight {public static void main(String[] args) throws UnknownHostException {// TODO Auto-generated method stub// 设置集群名称Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();// 创建clientTransportClient client = new PreBuiltTransportClient(settings). addTransportAddress(new TransportAddress(InetAddress.getByName("XXX.XXX.XX.XX"), 9300));//本地的话,可以使用 localhost,9300是默认的 api 访问接口QueryBuilder matchQuery = QueryBuilders.matchQuery("title", "Elasticsearch");HighlightBuilder hiBuilder=new HighlightBuilder();hiBuilder.preTags("<h2>");hiBuilder.postTags("</h2>");hiBuilder.field("title");// 搜索数据SearchResponse response = client.prepareSearch("blog").setQuery(matchQuery).highlighter(hiBuilder).execute().actionGet();//获取查询结果集SearchHits searchHits = response.getHits();System.out.println("共搜到:"+searchHits.getTotalHits()+"条结果!");//遍历结果for(SearchHit hit:searchHits){System.out.println("String方式打印文档搜索内容:");System.out.println(hit.getSourceAsString());System.out.println("Map方式打印高亮内容");System.out.println(hit.getHighlightFields());System.out.println("遍历高亮集合,打印高亮片段:");Text[] text = hit.getHighlightFields().get("title").getFragments();for (Text str : text) {System.out.println(str.string());}}}
}

注意

在pom.xml配置文件中务必加入

dependency><groupId>org.elasticsearch.plugin</groupId><artifactId>transport-netty4-client</artifactId><version>6.4.0</version>
</dependency>

否则会报如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/common/transport/InetSocketTransportAddressat org.elasticsearch.transport.Netty4Plugin.getSettings(Netty4Plugin.java:55)at org.elasticsearch.plugins.PluginsService.lambda$getPluginSettings$0(PluginsService.java:87)at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)at org.elasticsearch.plugins.PluginsService.getPluginSettings(PluginsService.java:87)at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:145)at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:283)at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:128)at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:114)at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:104)at com.gwd.elasticsearch.test.HighLight.main(HighLight.java:31)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.common.transport.InetSocketTransportAddressat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 16 more

查询结果

共搜到:2条结果!
String方式打印文档搜索内容:{"title": "New version of Elasticsearch released!","content": "Version 1.0 released today!","priority": 10,"tags": ["announce", "elasticsearch", "release"]
}
Map方式打印高亮内容
{title=[title], fragments[[New version of <h2>Elasticsearch</h2> released!]]}
遍历高亮集合,打印高亮片段:
New version of <h2>Elasticsearch</h2> released!
String方式打印文档搜索内容:{"id": "1","title": "New version of Elasticsearch released!","content": "Version 1.0 released today!","priority": 10,"tags": ["announce", "elasticsearch", "release"]
}
Map方式打印高亮内容
{title=[title], fragments[[New version of <h2>Elasticsearch</h2> released!]]}
遍历高亮集合,打印高亮片段:
New version of <h2>Elasticsearch</h2> released!

ElasticSearch教程——Java进行高亮显示相关推荐

  1. ElasticSearch教程——汇总篇

    环境搭建篇 ElasticSearch教程--安装 ElasticSearch教程--安装Head插件 ElasticSearch教程--安装IK分词器插件 ElasticSearch教程--安装Ki ...

  2. (转)ElasticSearch教程——汇总篇

    https://blog.csdn.net/gwd1154978352/article/details/82781731 环境搭建篇 ElasticSearch教程--安装 ElasticSearch ...

  3. 适用于Java开发人员的Elasticsearch教程

    课程大纲 Elasticsearch是基于Lucene的搜索引擎. 它提供了具有HTTP Web界面和无模式JSON文档的分布式多租户全文搜索引擎. Elasticsearch是用Java开发的,并根 ...

  4. 适用于Java开发人员的Elasticsearch:Java的Elasticsearch

    本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 . 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序. 我们涵 ...

  5. docker rabbitmq_使用Docker集成Rabbitmq与安装elasticsearch教程

    今天为大家分享,使用Docker-集成Rabbitmq,使用Docker-安装elasticsearch,Docker容器的备份与迁移教学! 使用Docker-集成Rabbitmq 使用Docker- ...

  6. elasticsearch 索引存储深入详解(Elasticsearch教程03)|MVP讲堂

    作者:阿里云MVP 铭毅 往期内容: 死磕 Elasticsearch 方法论:普通程序员高效精进的 10 大狠招! Elasticsearch学习,请先看这一篇!(Elasticsearch教程01 ...

  7. 十分nb且详细的Elasticsearch教程

    实时搜索引擎Elasticsearch Elasticsearch(简称ES)是一个基于Apache Lucene™的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能 ...

  8. ElasticSearch教程——proximity match 近似匹配

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 1.什么是近似匹配 两个句子 java is my favourite programming language, an ...

  9. 关于Elastic、关于Elasticsearch教程

    不写教程就会感到寂寞. 国庆期间,著名的数据搜索公司Elastic在纽交所上市,股票发行价为36美元,Elastic上市首日最高股价为74.2美元,最高涨幅达到106%.于是网上有人感叹,这么多年,终 ...

最新文章

  1. mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
  2. 基于python的界面自动化测试-基于Python语言的自动化测试系统的设计与实现
  3. kafka配置_Kafka生产环境的几个重要配置参数
  4. .NET 和 JAVA
  5. 银行it现状调研_中央银行系统行业现状调研分析及发展趋势预测报告(2019年版)...
  6. 分布式系统:CAP 理论的前世今生
  7. 7-4 银行业务队列简单模拟 (15 分)
  8. java行转列_Java后端面试标准:如何准备一场后端面试?
  9. 数据流图技术相关基础知识
  10. SVM入门(一)至(三)
  11. python写的 自定义连点器 的开发全过程(抢票、信息轰炸等、游戏连招等)——思路及解析【内附完整源码】
  12. ffmpeg和JavaCV
  13. Chevereto网站存放图像至相应二级分类文件夹
  14. Excel 相对引用 绝对引用 区别是什么 如何快速转换 快捷键 F4
  15. 鸿雪因缘--穿越千年的朋友圈
  16. Form认证timeout无效问题
  17. 通过Keycloak API理解OAuth2与OpenID Connect
  18. 2022前端开发React面试题 附答案
  19. 最新多功能校园表白墙源码 LoveWall V2.0Pro
  20. 链克的链克袋鼠钱包插件的安装和使用

热门文章

  1. 不建议使用免费进销存软件的几个原因
  2. 小学计算机课教学工作总结,小学信息技术课教师工作总结3篇
  3. 让windows xp、2003的桌面图标透明
  4. 含电热联合系统的微电网运行优化(Matlab代码实现)
  5. 视频录制后怎么裁剪?这里有可以学习的操作
  6. 用python模拟双色球中奖,看看怎么买彩票最科学
  7. win10安装程序没有修复计算机,安装Win10系统突然没有声音怎么修复
  8. php 仿微信发红包 负数,php仿微信红包分配算法的实现方法
  9. 51单片机-红外计算器
  10. java操作Excel-poi:无法解析符号/方法Cannot resolve symbol ‘‘、Cannot resolve method ‘‘