本文共 2057 字,大约阅读时间需要 6 分钟。
在使用Elasticsearch Java客户端进行操作之前,首先需要在项目中添加相应的jar包依赖。以下是具体的配置方式:
org.elasticsearch.client transport 7.17.0
通过代码示例了解如何初始化Elasticsearch客户端。以下是一个基本的初始化过程:
private TransportClient initClient() throws UnknownHostException { String node = esSetting.getClusterNodes(); int index = node.indexOf(":"); String host = node.substring(0, index); int port = Integer.valueOf(node.substring(index + 1)); Settings settings = Settings.builder() .put("cluster.name", esSetting.getClusterName()) .put("client.transport.sniff", true) .build(); InetAddress address = InetAddress.getByName(host); TransportClient client = new PreBuiltTransportClient(settings); client.addTransportAddress(new InetSocketTransportAddress(address, port)); return client;} 通过以下代码示例可以对Elasticsearch索引进行查询操作:
// 构建查询条件QueryBuilder queryBuilder = QueryBuilders.boolQuery() .must(QueryBuilders.rangeQuery("date") .gte("2018-11-08T00:00:00.000Z") .lt("2018-11-09T00:00:00.000Z"));// 配置搜索参数String index = "index";String type = "type";SearchResponse response = client.prepareSearch(index) .setTypes(type) .addSort("date", SortOrder.ASC) .setSize(1000) .setQuery(queryBuilder) .execute() .actionGet();// 处理结果long total = response.getHits().getTotalHits(); 以下代码示例展示了如何向Elasticsearch索引中写入新数据:
try { XContentBuilder builder = XContentFactory.jsonBuilder() .startObject() .field("date", "2018-11-08T00:00:00.000Z") .field("cost", 10) .endObject(); IndexResponse response = client .prepareIndex(index, type) .setSource(builder) .get();} catch (Exception e) { e.printStackTrace();} 以上代码示例涵盖了从导入依赖到客户端初始化、查询操作以及数据写入的完整流程。如果需要更详细的功能说明或其他操作,请参考Elasticsearch官方文档或相关技术博客。
转载地址:http://fkdbz.baihongyu.com/