使用java客户端操作elasticsearch
来源:互联网 发布:软件检测报告模板 编辑:程序博客网 时间:2024/04/30 02:15
使用java客户端操作elasticsearch
本文主要参考:
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html
本文的主要目的不是追求如何用java语言进行elasticsearch的操作,而是如何搭建一个环境,这个环境能够进行访问elasticsearch。
好,下面上货。
1、首先新建一个简单maven项目。
mvn archetype:generate -DarchetypeCatalog=internal
2、然后修改pom文件,添加依赖。
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.2.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</version> </dependency>
添加plugins查看,方便打jar包。
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf-8</encoding> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.0.0</version> <configuration> <archive> <manifest> <mainClass>com.xueyouc.xueyou.App</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <!-- this is used for inheritance merges --> <phase>package</phase> <!-- bind to the packaging phase --> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins>
3、添加log4j2的配置文件和本地配置文件
log4j2.properties:
appender.console.type = Consoleappender.console.name = consoleappender.console.layout.type = PatternLayoutrootLogger.level = inforootLogger.appenderRef.console.ref = console
conf.properties:
elasticsearch.clustername=xyclusterelasticsearch.addr1=127.0.0.1
4、编写程序实现对elasticsearch的访问:
App.java
package com.xueyouc.xueyou;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.common.xcontent.XContentBuilder;import org.elasticsearch.transport.client.PreBuiltTransportClient;import java.io.IOException;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Date;import java.util.ResourceBundle;import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;/** * Hello world! */public class App { public static void main(String[] args) { /** * 读取配置文件 */ ResourceBundle rb = ResourceBundle.getBundle("conf"); String clustername = rb.getString("elasticsearch.clustername"); String addr1 = rb.getString("elasticsearch.addr1"); String[] temparray = addr1.split("\\."); byte[] localAddr = new byte[temparray.length]; for (int i = 0; i < temparray.length; i++) { localAddr[i] = Byte.parseByte(temparray[i]); } TransportClient client = null; try { Settings settings = Settings.builder().put("cluster.name", clustername).build(); client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByAddress(localAddr), 9300)); //插入你的处理逻辑 try { XContentBuilder builder = jsonBuilder().startObject().field("user", "user002").field("postDate", new Date()).field("message", "trying out elasticsearch").endObject(); IndexResponse response = client.prepareIndex("testindex","testtype","2").setSource(builder).execute().actionGet(); System.out.println("============================"); System.out.println(response.getIndex()); System.out.println(response.getType()); System.out.println(response.getId()); System.out.println("============================"); } catch (IOException e) { e.printStackTrace(); } finally { } } catch (UnknownHostException e) { e.printStackTrace(); } finally { client.close(); } }}
localAddr[i] = (byte) Integer.parseInt(temparray[i]);5、运行结果:
6、检索elasticsearch中的数据
1 0
- 使用java客户端操作elasticsearch
- ElasticSearch java客户端使用
- elasticsearch JAVA客户端操作---索引的CURD
- Elasticsearch 2.3.2 java客户端操作
- Elasticsearch 2.3.2 java客户端操作
- Java操作ElasticSearch之创建客户端连接
- 使用Elasticsearch的java api,操作elasticsearch
- elasticsearch java客户端api使用(一)
- elasticsearch java客户端api使用(二)
- ElasticSearch Java客户端简易使用教程
- elasticsearch JAVA客户端操作---搜索的过滤、分组高亮
- Elasticsearch系列(五)----JAVA客户端之TransportClient操作详解
- Elasticsearch系列(六)----JAVA客户端之Jest操作详解
- Elasticsearch系列(七)----JAVA客户端之RestClient操作详解
- ES006-Elasticsearch-JAVA客户端
- elasticsearch java客户端 - Jest
- 使用Java Rest Client操作Elasticsearch
- [ElasticSearch]使用 java API 进行CRUD操作
- 最近项目需求要利用蓝牙广播数据,以前没搞过,很头疼,查了很多资料,决定写一篇,供有需求者使用.(第一次写博客,大家多多指教)
- 对Spring框架的理解
- AndroidStudio集成Freeline实现秒级编译
- 1005 Number Sequence
- gulp学习之四------编译 LESS
- 使用java客户端操作elasticsearch
- Sobel算子 原理
- 解决refinition
- 关于iOS学习进阶的必读一些博客总结
- base64_encode(rsa()) 加解密内容给大家分享
- Linux -- 在VMware上安装Linux系统
- 面试技巧:不是我教你诈
- oracle创建、查询表空间
- 实验:c++实验3-项目1