<dl id="opymh"></dl>

<div id="opymh"></div>
      <div id="opymh"><tr id="opymh"></tr></div>

        <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

        <em id="opymh"></em>

        <em id="opymh"><ol id="opymh"></ol></em>

              频道栏目
              首页 > 考试 > 等级考试 > 二级 > JAVA > 正文

              关于elasticsearchJavaHighLevelREST的封装操作

              2018-07-27 14:45:18         来源  
              收藏   我要投稿

              pox.xml文件添加以下内容

                  org.elasticsearch.client
                  elasticsearch-rest-high-level-client
                  6.3.2
              

              新建ESHighLevelRestUtil.java

              package com;
              import java.util.HashMap;
              import java.util.Map;
              import org.apache.http.HttpHost;
              import org.elasticsearch.ElasticsearchException;
              import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
              import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
              import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
              import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
              import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
              import org.elasticsearch.action.delete.DeleteRequest;
              import org.elasticsearch.action.delete.DeleteResponse;
              import org.elasticsearch.action.index.IndexRequest;
              import org.elasticsearch.action.index.IndexResponse;
              import org.elasticsearch.action.support.replication.ReplicationResponse;
              import org.elasticsearch.action.DocWriteResponse;
              import org.elasticsearch.client.RestClient;
              import org.elasticsearch.client.RestHighLevelClient;
              import org.elasticsearch.common.settings.Settings;
              import org.elasticsearch.common.xcontent.XContentType;
              import org.elasticsearch.rest.RestStatus;
              public class ESHighLevelRestUtil {
              	static RestHighLevelClient client = new RestHighLevelClient(
              			RestClient.builder(new HttpHost("172.19.12.249", 9200, "http")));
              
              	/**
              	 * 验证索引是否存在
              	 * 
              	 * @param index
              	 *            索引名称
              	 * @return
              	 * @throws Exception
              	 */
              	public boolean indexExists(String index) throws Exception {
              		GetIndexRequest request = new GetIndexRequest();
              		request.indices(index);
              		request.local(false);
              		request.humanReadable(true);
              
              		boolean exists = client.indices().exists(request);
              		return exists;
              	}
              
              	/**
              	 * 
              	 * @param index
              	 * @param indexType
              	 * @param properties
              	 *            结构: {name:{type:text}} {age:{type:integer}}
              	 * @return
              	 * @throws Exception
              	 */
              	public boolean indexCreate(String index, String indexType,
              			Map properties) throws Exception {
              
              		if (indexExists(index)) {
              			return true;
              		}
              		CreateIndexRequest request = new CreateIndexRequest(index);
              		request.settings(Settings.builder().put("index.number_of_shards", 3)
              				.put("index.number_of_replicas", 2));
              
              		Map jsonMap = new HashMap<>();
              		Map mapping = new HashMap<>();
              		mapping.put("properties", properties);
              		jsonMap.put(indexType, mapping);
              		request.mapping(indexType, jsonMap);
              
              		CreateIndexResponse createIndexResponse = client.indices().create(
              				request);
              		boolean acknowledged = createIndexResponse.isAcknowledged();
              		return acknowledged;
              	}
              
              	/**
              	 * 删除索引
              	 * 
              	 * @param index
              	 * @return
              	 * @throws Exception
              	 */
              	public boolean indexDelete(String index) throws Exception {
              		try {
              			DeleteIndexRequest request = new DeleteIndexRequest(index);
              			DeleteIndexResponse deleteIndexResponse = client.indices().delete(
              					request);
              			return deleteIndexResponse.isAcknowledged();
              		} catch (ElasticsearchException exception) {
              			if (exception.status() == RestStatus.NOT_FOUND) {
              				return true;
              			} else {
              				return false;
              			}
              		}
              	}
              
              	/**
              	 * 创建更新文档
              	 * 
              	 * @param index
              	 * @param indexType
              	 * @param documentId
              	 * @param josonStr
              	 * @return
              	 * @throws Exception
              	 */
              	public boolean documentCreate(String index, String indexType,
              			String documentId, String josonStr) throws Exception {
              		IndexRequest request = new IndexRequest(index, indexType, documentId);
              
              		request.source(josonStr, XContentType.JSON);
              		IndexResponse indexResponse = client.index(request);
              
              		if (indexResponse.getResult() == DocWriteResponse.Result.CREATED
              				|| indexResponse.getResult() == DocWriteResponse.Result.UPDATED) {
              			return true;
              		}
              		ReplicationResponse.ShardInfo shardInfo = indexResponse.getShardInfo();
              		if (shardInfo.getTotal() != shardInfo.getSuccessful()) {
              			return true;
              		}
              		if (shardInfo.getFailed() > 0) {
              			for (ReplicationResponse.ShardInfo.Failure failure : shardInfo
              					.getFailures()) {
              				throw new Exception(failure.reason());
              			}
              		}
              		return false;
              	}
              
              	/**
              	 * 创建更新索引
              	 * 
              	 * @param index
              	 * @param indexType
              	 * @param documentId
              	 * @param map
              	 * @return
              	 * @throws Exception
              	 */
              	public boolean documentCreate(String index, String indexType,
              			String documentId, Map map) throws Exception {
              		IndexRequest request = new IndexRequest(index, indexType, documentId);
              
              		request.source(map);
              		IndexResponse indexResponse = client.index(request);
              
              		if (indexResponse.getResult() == DocWriteResponse.Result.CREATED
              				|| indexResponse.getResult() == DocWriteResponse.Result.UPDATED) {
              			return true;
              		}
              		ReplicationResponse.ShardInfo shardInfo = indexResponse.getShardInfo();
              		if (shardInfo.getTotal() != shardInfo.getSuccessful()) {
              			return true;
              		}
              		if (shardInfo.getFailed() > 0) {
              			for (ReplicationResponse.ShardInfo.Failure failure : shardInfo
              					.getFailures()) {
              				throw new Exception(failure.reason());
              			}
              		}
              		return false;
              	}
              
              	/**
              	 * 创建索引
              	 * 
              	 * @param index
              	 * @param indexType
              	 * @param josonStr
              	 * @return
              	 * @throws Exception
              	 */
              	public String documentCreate(String index, String indexType, String josonStr)
              			throws Exception {
              		IndexRequest request = new IndexRequest(index, indexType);
              
              		request.source(josonStr, XContentType.JSON);
              		IndexResponse indexResponse = client.index(request);
              
              		String id = indexResponse.getId();
              		if (indexResponse.getResult() == DocWriteResponse.Result.CREATED
              				|| indexResponse.getResult() == DocWriteResponse.Result.UPDATED) {
              			return id;
              		}
              		ReplicationResponse.ShardInfo shardInfo = indexResponse.getShardInfo();
              		if (shardInfo.getTotal() != shardInfo.getSuccessful()) {
              			return id;
              		}
              		if (shardInfo.getFailed() > 0) {
              			for (ReplicationResponse.ShardInfo.Failure failure : shardInfo
              					.getFailures()) {
              				throw new Exception(failure.reason());
              			}
              		}
              		return null;
              	}
              
              	/**
              	 * 创建索引
              	 * 
              	 * @param index
              	 * @param indexType
              	 * @param map
              	 * @return
              	 * @throws Exception
              	 */
              	public String documentCreate(String index, String indexType,
              			Map map) throws Exception {
              		IndexRequest request = new IndexRequest(index, indexType);
              
              		request.source(map);
              		IndexResponse indexResponse = client.index(request);
              
              		String id = indexResponse.getId();
              		if (indexResponse.getResult() == DocWriteResponse.Result.CREATED
              				|| indexResponse.getResult() == DocWriteResponse.Result.UPDATED) {
              			return id;
              		}
              		ReplicationResponse.ShardInfo shardInfo = indexResponse.getShardInfo();
              		if (shardInfo.getTotal() != shardInfo.getSuccessful()) {
              			return id;
              		}
              		if (shardInfo.getFailed() > 0) {
              			for (ReplicationResponse.ShardInfo.Failure failure : shardInfo
              					.getFailures()) {
              				throw new Exception(failure.reason());
              			}
              		}
              		return null;
              	}
              
              	public boolean documentDelete(String index, String indexType,
              			String documentId) throws Exception {
              		DeleteRequest request = new DeleteRequest(index, indexType, documentId);
              		DeleteResponse deleteResponse = client.delete(request);
              		if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) {
              			return true;
              		}
              		ReplicationResponse.ShardInfo shardInfo = deleteResponse.getShardInfo();
              		if (shardInfo.getTotal() != shardInfo.getSuccessful()) {
              			return true;
              		}
              		if (shardInfo.getFailed() > 0) {
              			for (ReplicationResponse.ShardInfo.Failure failure : shardInfo
              					.getFailures()) {
              				throw new Exception(failure.reason());
              			}
              		}
              		return false;
              	}
              
              }
              

              新建ESHighLevelRestTest.java

              package com;
              
              import java.util.HashMap;
              import java.util.Map;
              
              import org.apache.http.HttpHost;
              import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
              import org.elasticsearch.client.RestClient;
              import org.elasticsearch.client.RestHighLevelClient;
              
              public class ESHighLevelRestTest {
              	public static void main(String[] args) throws Exception {
              		// TODO Auto-generated method stub
              		ESHighLevelRestUtil util = new ESHighLevelRestUtil();
              
              		System.out.println(util.indexExists("indextest001"));
              
              		Map map = new HashMap();
              		map.put("name", new HashMap() {
              			{
              				put("type", "text");
              			}
              		});
              		map.put("age", new HashMap() {
              			{
              				put("type", "double");
              			}
              		});
              		map.put("sex", new HashMap() {
              			{
              				put("type", "double");
              			}
              		});
              		map.put("address", new HashMap() {
              			{
              				put("type", "text");
              			}
              		});
              
              		// 创建主题
              		util.indexCreate("indextest005", "sx", map);
              
              		//创建文档1
              		System.out.println(util.documentCreate("indextest005", "sx",
              				new HashMap() {
              					{
              						put("name", "名称1");
              						put("age", 18);
              						put("sex", 10);
              						put("address", "地址1");
              					}
              				}));
              
              		//创建更新文档2
              		System.out.println(util.documentCreate("indextest005", "sx", "1",
              				new HashMap() {
              					{
              						put("name", "名称2");
              						put("age", 18);
              						put("sex", 10);
              						put("address", "地址2");
              					}
              				}));
              		
              		//删除文档
              		System.out.println(util.documentDelete("indextest005", "sx", "1"));
              	}
              }
              

              \

              上一篇以阿里HBase的GC优化实践为例 -如何?#26723;?0%Java垃圾回收时间
              下一篇JAVA纯代码关于用户创建自定义函数
              相关文章
              图文推荐
              热门新闻

              关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

              版权所有: 红黑联盟--致力于做实用的IT技术学习网站

              ٷͧü
              <dl id="opymh"></dl>

              <div id="opymh"></div>
                  <div id="opymh"><tr id="opymh"></tr></div>

                    <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                    <em id="opymh"></em>

                    <em id="opymh"><ol id="opymh"></ol></em>

                          <dl id="opymh"></dl>

                          <div id="opymh"></div>
                              <div id="opymh"><tr id="opymh"></tr></div>

                                <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                                <em id="opymh"></em>

                                <em id="opymh"><ol id="opymh"></ol></em>