从零搭建Web所需服务(四)Java连接ES进行分词并获取结果

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 在前几篇中,我们提到了ES分词器可以用来做什么,怎么用,以及获取它进行分词后的结果,当我们使用Java进行Web项目开发时,我们需要连接ES服务进行分词并返回数据,我们应该如何去写,那么本文将介绍在maven项目下如何去实现我们所需的功能。

导入pom.xml

<dependency>
     <groupId>org.elasticsearch.client</groupId>
     <artifactId>transport</artifactId>
     <version>6.2.2</version>
</dependency>
<dependency>
     <groupId>org.elasticsearch.client</groupId>
     <artifactId>elasticsearch-rest-client</artifactId>
     <version>7.6.2</version>
</dependency>

操作代码


import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest;
import org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

import java.net.InetAddress;
import java.util.List;

public class JavaEsTest {
    public static void main(String[] args) throws Exception{
        //设定集群名称
        Settings settings=Settings.builder().put("cluster.name","my-application").build();
        //创建es服务链接
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
        //设定请求下标,分词情况下默认null即可
        //analyzer 分析仪器(如果时间充足我会整理一篇此参数的番外)
        //text 需要进行分词的参数
        AnalyzeRequest request = (new AnalyzeRequest(null)).analyzer("ik_max_word").text("在新中国特色社会主义制度下,为实现中华民族伟大复兴的中国梦,中国人在不断努力奋斗");
        List<AnalyzeResponse.AnalyzeToken> tokens = client.admin().indices().analyze(request).actionGet().getTokens();
        for (int i=0;i<tokens.size();i++){
//            System.out.println(tokens.get(i).getTerm());
        }
    }
}

输出结果

image.png


在进行了配置es,使用es,连接es之后,我们就成功的获取到了es服务分词后的结果,我们就可以通过这些结果进行Web项目下模糊搜索的开发,那么这只是在main方法中简单的进行连接,下一篇我将讲述如何在SpringCloud下进行注入,连接,使用,欢迎观看!


上一篇从零搭建Web服务所需服务(三)安装IK分词器

相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
1天前
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
18 8
|
3天前
|
JavaScript Java 测试技术
基于Java的智慧医疗服务平台系统设计和实现(源码+LW+部署讲解)
基于Java的智慧医疗服务平台系统设计和实现(源码+LW+部署讲解)
23 8
|
13天前
|
开发框架 安全 .NET
使用VB.NET构建Web服务和REST API的指南
【7月更文挑战第2天】使用VB.NET构建Web服务和REST API的指南:从Web服务基础到ASP.NET Core实践,涵盖控制器、路由、模型绑定、安全措施(如JWT、HTTPS)及测试、部署(Azure、Docker)与监控工具。了解如何利用VB.NET在现代云环境中创建高效、安全的API。开始你的VB.NET Web服务开发之旅!**
15 1
|
3天前
|
Java
idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
|
5天前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
14 0
|
5天前
|
存储 安全 Java
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
11 0
|
7天前
|
缓存 安全 Java
使用Java构建高性能的RESTful服务
使用Java构建高性能的RESTful服务
|
7天前
|
缓存 安全 Java
使用Java实现高性能的文件上传下载服务
使用Java实现高性能的文件上传下载服务
|
7天前
|
缓存 Java 数据库连接
使用Java构建一个高并发的网络服务
使用Java构建一个高并发的网络服务
|
10天前
|
Java Redis 数据安全/隐私保护
Redis14----Redis的java客户端-jedis的连接池,jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,最好用jedis连接池代替jedis,配置端口,密码
Redis14----Redis的java客户端-jedis的连接池,jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,最好用jedis连接池代替jedis,配置端口,密码