es---java操作API
1.maven文件及jar包

<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.roncoo.es</groupId> <artifactId>es-core-first</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>es-core-first</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.6.3</version>//这个必须和自己安装的版本对应,否则报错 </dependency> </dependencies> </project>
2.增删改查操作
package com.roncoo.es.score.first; import java.net.InetAddress; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.transport.client.PreBuiltTransportClient; /** 文件 1 * 员工增删改查的应用程序 * @author Administrator * */ public class EmployeeCRUDApp { @SuppressWarnings({ "unchecked", "resource" }) public static void main(String[] args) throws Exception { // 先构建client Settings settings = Settings.builder() .put("cluster.name", "es") //集群的名字 。查看自己的集群名字:192.168.1.115:9200 .build(); TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.1.115"), 9300)); createEmployee(client); // getEmployee(client); // updateEmployee(client); // deleteEmployee(client); client.close(); } /** * 创建员工信息(创建一个document) * @param client */ private static void createEmployee(TransportClient client) throws Exception { IndexResponse response = client.prepareIndex("company", "employee", "2") .setSource(XContentFactory.jsonBuilder() .startObject() .field("name", "jack3") .field("age", 217) .field("position", "technique") .field("country", "china") .field("join_date", "2017-01-01") .field("salary", 10000) .endObject()) .get(); System.out.println(response.getResult()); } /** * 获取员工信息 * @param client * @throws Exception */ private static void getEmployee(TransportClient client) throws Exception { GetResponse response = client.prepareGet("company", "employee", "1").get(); System.out.println(response.getSourceAsString()); } /** * 修改员工信息 * @param client * @throws Exception */ private static void updateEmployee(TransportClient client) throws Exception { UpdateResponse response = client.prepareUpdate("company", "employee", "1") .setDoc(XContentFactory.jsonBuilder() .startObject() .field("position", "technique manager") .endObject()) .get(); System.out.println(response.getResult()); } /** * 删除 员工信息 * @param client * @throws Exception */ private static void deleteEmployee(TransportClient client) throws Exception { DeleteResponse response = client.prepareDelete("company", "employee", "1").get(); System.out.println(response.getResult()); } }
3.查看添加的数据
GET company/employee/_search { "query": { "match_all": {} } }

4.按条件查询---年龄在30-40岁的
package com.roncoo.es.score.first; import java.net.InetAddress; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.transport.client.PreBuiltTransportClient; /** * 员工搜索应用程序 * @author Administrator * */ public class EmployeeSearchApp { @SuppressWarnings({ "unchecked", "resource" }) public static void main(String[] args) throws Exception { Settings settings = Settings.builder() .put("cluster.name", "es") .build(); TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.1.115"), 9300)); // prepareData(client); executeSearch(client); client.close(); } /** * 执行搜索操作 * @param client */ private static void executeSearch(TransportClient client) { SearchResponse response = client.prepareSearch("company") .setTypes("employee") .setQuery(QueryBuilders.matchQuery("position", "technique")) .setPostFilter(QueryBuilders.rangeQuery("age").from(30).to(40)) .setFrom(0).setSize(1) .get(); SearchHit[] searchHits = response.getHits().getHits(); for(int i = 0; i < searchHits.length; i++) { System.out.println(searchHits[i].getSourceAsString()); } } /** * 准备数据 (添加数据) * @param client */ private static void prepareData(TransportClient client) throws Exception { client.prepareIndex("company", "employee", "1") .setSource(XContentFactory.jsonBuilder() .startObject() .field("name", "jack") .field("age", 27) .field("position", "technique software") .field("country", "china") .field("join_date", "2017-01-01") .field("salary", 10000) .endObject()) .get(); client.prepareIndex("company", "employee", "2") .setSource(XContentFactory.jsonBuilder() .startObject() .field("name", "marry") .field("age", 35) .field("position", "technique manager") .field("country", "china") .field("join_date", "2017-01-01") .field("salary", 12000) .endObject()) .get(); client.prepareIndex("company", "employee", "3") .setSource(XContentFactory.jsonBuilder() .startObject() .field("name", "tom") .field("age", 32) .field("position", "senior technique software") .field("country", "china") .field("join_date", "2016-01-01") .field("salary", 11000) .endObject()) .get(); client.prepareIndex("company", "employee", "4") .setSource(XContentFactory.jsonBuilder() .startObject() .field("name", "jen") .field("age", 25) .field("position", "junior finance") .field("country", "usa") .field("join_date", "2016-01-01") .field("salary", 7000) .endObject()) .get(); client.prepareIndex("company", "employee", "5") .setSource(XContentFactory.jsonBuilder() .startObject() .field("name", "mike") .field("age", 37) .field("position", "finance manager") .field("country", "usa") .field("join_date", "2015-01-01") .field("salary", 15000) .endObject()) .get(); } }

浙公网安备 33010602011771号