Java操作Elasticsearch
来源:互联网 发布:msqrd软件安卓版 编辑:程序博客网 时间:2024/05/17 05:59
ava操作Elasticsearch
上面用到的核心类:TransportClient
上面是索引库的位置 和 类型
求索引总数:
批量操作:
今天呢,发一篇JAVA操作ES搜索引擎的代码吧!
创建工程就不说了
Maven工程:加入Maven依赖!!!
pom.xml
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.elasticsearch</groupId>
- <artifactId>elasticsearch</artifactId>
- <version>1.4.4</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.1.3</version>
- </dependency>
JUnit测试首先连接:
- /**
- * Title: testConnection
- * Description: 测试连接
- */
- TransportClient client = null;
- @Before
- public void connection(){
- //设置一些属性
- //Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name","elasticsearch").build();
- // 获取一个客户端对象
- client = new TransportClient();//new TransportClient(settings);
- // 指定连接的Es节点Ip和端口 端口默认使用 9300
- TransportAddress transportAddress = new InetSocketTransportAddress("cloudera",9300);
- client.addTransportAddress(transportAddress);
- // 获取客户端 连接上的节点信息
- ImmutableList<DiscoveryNode> nodes = client.connectedNodes();
- for (DiscoveryNode discoveryNode : nodes) {
- System.out.println(discoveryNode.getHostAddress()+"\t"+discoveryNode.getHostName());
- }
- }
定义两个常量 方便之后的操作:
- private final static String INDEX = "test";
- private final static String TYPE = "emp";
上面是索引库的位置 和 类型
创建索引:有4种方法 下面给出代码
- /**
- *
- * Title: creatIndex1
- * Description:创建索引___JSON
- */
- @Test
- public void creatIndex1() {
- String jsonstr = "{\"name\":\"Baby\",\"address\":\"jx\",\"age\":23}";
- IndexResponse response = client.prepareIndex(INDEX, TYPE, "3")//
- .setSource(jsonstr).execute()//
- .actionGet();
- System.out.println(response.getId());
- }
- /**
- *
- * Title: creatIndex2
- * Description:创建索引___Map
- */
- @Test
- public void creatIndex2() {
- Map<String, Object> source = new HashMap<String, Object>();
- source.put("name", "ww");
- source.put("age", 20);
- source.put("address", "SH");
- IndexResponse response = client.prepareIndex(INDEX, TYPE)//
- .setSource(source).execute()//
- .actionGet();
- System.out.println(response.getId());
- }
- /**
- *
- * Title: creatIndex3
- * Description:创建索引___Bean-->工具类转JSON
- * @throws JsonProcessingException
- */
- @Test
- public void creatIndex3() throws Exception {
- Person person = new Person();
- person.setName("JSQ");
- person.setAge(21);
- person.setAddress("JL");
- ObjectMapper mapper = new ObjectMapper();
- IndexResponse response = client.prepareIndex(INDEX, TYPE)//
- .setSource(mapper.writeValueAsString(person)).execute()//
- .actionGet();
- System.out.println(response.getId());
- }
- /**
- *
- * Title: creatIndex4
- * Description:创建索引___工具类 XContentBuilder
- * @throws JsonProcessingException
- */
- @Test
- public void creatIndex4() throws Exception {
- XContentBuilder builder = XContentFactory.jsonBuilder()//
- .startObject()// {
- .field("name", "test")// "name":"test"
- .field("age", 31)//
- .endObject();// }
- IndexResponse response = client.prepareIndex(INDEX, TYPE)//
- .setSource(builder).execute()//
- .actionGet();
- System.out.println(response.getId());
- }
根据ID读取索引
- /**
- *
- * Title: getIndex
- * Description:查詢
- */
- @Test
- public void getIndexByID(){
- GetResponse get = client.prepareGet(INDEX, TYPE, "1").execute().actionGet();
- System.out.println(get.getSourceAsString());
- }
更新操作:
- /**
- *
- * Title: getIndex
- * Description:更新1
- * @throws IOException
- */
- @Test
- public void Update() throws Exception {
- XContentBuilder builder = XContentFactory.jsonBuilder()//
- .startObject()// {
- .field("name", "qwer")// "name":"test"
- .field("age", 16)//
- .endObject();// }
- UpdateResponse response = client.prepareUpdate(INDEX, TYPE, "AVZ_sjFPSKhvuiHi4K8Z").setDoc(builder).execute().actionGet();
- System.out.println(response.getVersion());
- }
- /**
- *
- * Title: getIndex
- * Description:更新2
- *
- * @throws Exception
- */
- @Test
- public void Update2() throws Exception {
- UpdateRequest request = new UpdateRequest(INDEX, TYPE, "AVZ_sjG3SKhvuiHi4K8a");
- request.doc(XContentFactory.jsonBuilder().startObject().field("age", 18).endObject());
- UpdateResponse response = client.update(request).get();
- System.out.println(response.getVersion());
- }
- /**
- *
- * Title: UpdateOrCreate
- * Description: 更新或者插入
- * @throws Exception
- */
- @Test
- public void UpdateOrCreate() throws Exception {
- UpdateRequest request = new UpdateRequest(INDEX, TYPE, "4");
- XContentBuilder builder = XContentFactory.jsonBuilder()//
- .startObject()// {
- .field("name", "adfg")// "name":"test"
- .field("age", 66)//
- .endObject();// }
- request.doc(builder);
- request.upsert(builder);
- UpdateResponse response = client.update(request).get();
- System.out.println(response.getVersion());
- }
- /**
- *
- * Title: UpdateOrCreate
- * Description: 删除1
- * @throws Exception
- */
- @Test
- public void delete() throws Exception {
- DeleteRequest request = new DeleteRequest(INDEX, TYPE, "AVZ9SoaeqXbhzyjETmWC");
- DeleteResponse response = client.delete(request ).get();
- System.out.println("版本:"+response.getVersion());
- }
- /**
- *
- * Title: UpdateOrCreate
- * Description: 删除2
- * @throws Exception
- */
- @Test
- public void delete2() throws Exception {
- DeleteResponse response = client.prepareDelete(INDEX, TYPE, "1").execute().actionGet();
- System.out.println("版本:"+response.getVersion());
- }
求索引总数:
- /**
- *
- * Title: QueryCount
- * Description: 求总数
- * @throws Exception
- */
- @Test
- public void QueryCount() throws Exception {
- long l = client.prepareCount(INDEX).execute().get().getCount();
- System.out.println("总数:"+l);
- }
批量操作:
- /**
- *
- * Title: testBulk
- * Description:批量操作
- */
- @Test
- public void testBulk(){
- BulkRequestBuilder bulk = client.prepareBulk();
- //创建索引
- IndexRequest request1 = new IndexRequest(INDEX, TYPE, "101");
- request1.source("{\"name\":\"test101\",\"age\":101}");
- IndexRequest request2 = new IndexRequest(INDEX, TYPE, "102");
- request2.source("{\"name\":\"test102\",\"age\":102}");
- //删除索引
- DeleteRequest request3 = new DeleteRequest(INDEX, TYPE, "2");
- bulk.add(request1);
- bulk.add(request2);
- bulk.add(request3);
- BulkResponse response = bulk.execute().actionGet();
- if(response.hasFailures()){
- System.out.println("发生错误");
- }else{
- System.out.println("全部执行成功");
- }
- }
阅读全文
0 0
- java对elasticsearch操作
- Java操作elasticsearch
- Java操作Elasticsearch
- Java 操作 ElasticSearch
- java 操作 elasticsearch 杂记
- Java操作Elasticsearch
- Elasticsearch Java-API CRUD Java操作Elasticsearch
- 使用Elasticsearch的java api,操作elasticsearch
- 使用java客户端操作elasticsearch
- java操作ElasticSearch的API
- elasticsearch JAVA客户端操作---索引的CURD
- ElasticSearch的java API基本操作
- Elasticsearch 2.3.2 java客户端操作
- Elasticsearch笔记五之java操作es
- Elasticsearch简单操作(Java代码)
- Elasticsearch 2.3.2 java客户端操作
- ElasticSearch 5.0.1 java API操作
- 使用Java Rest Client操作Elasticsearch
- 《Windows核心编程》读书笔记四 进程
- Lua 数据类型
- 挂载硬盘,提示 mount: unknown filesystem type 'LVM2_member'的解决方案
- CentOS7虚拟机设置静态IP外网访问
- HTCvive官方开发插件介绍
- Java操作Elasticsearch
- 文pdf转CAD能不能快速转换
- mysql 5.7 Replication 详解
- java总结
- 去耦电容与旁路电容的作用
- MyCat配置文件详解--sequence配置
- JS初学笔记
- Android手势检测——GestureDetector全面分析
- LLVM学习笔记(18)