热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

es2.4.6javaapi工具类

导入所需的jar!--ElasticSearchbegin--dependencygroupIdcom.xinyi.search/groupId

导入所需的jar

!-- ElasticSearch begin --
dependency
groupId com.xinyi.search /groupId
artifactId elasticsearch /artifactId
version 2.4.6 /version
/dependency

dependency
groupId com.xinyi.search /groupId
artifactId lucene-core /artifactId
version 5.5.4 /version
/dependency
dependency
groupId com.xinyi.search /groupId
artifactId lucene-analyzers-common /artifactId
version 5.5.4 /version
/dependency
dependency
groupId joda-time /groupId
artifactId joda-time /artifactId
version 2.9.4 /version
/dependency
dependency
groupId com.google.guava /groupId
artifactId guava /artifactId
version 18.0 /version
/dependency
dependency
groupId com.twitter /groupId
artifactId jsr166e /artifactId
version 1.1.0 /version
/dependency
dependency
groupId com.tdunning /groupId
artifactId t-digest /artifactId
version 3.0 /version
/dependency
dependency
groupId com.xinyi.search /groupId
artifactId netty /artifactId
version 3.10.6.Final /version
/dependency
dependency
groupId com.xinyi.search /groupId
artifactId hppc /artifactId
version 0.7.1 /version
/dependency
dependency
groupId com.xinyi.search /groupId
artifactId jackson-core /artifactId
version 2.8.1 /version
/dependency
dependency
groupId com.xinyi.search /groupId
artifactId jackson-dataformat-smile /artifactId
version 2.8.1 /version
/dependency
dependency
groupId com.xinyi.search /groupId
artifactId compress-lzf /artifactId
version 1.0.2 /version
/dependency

2 java工具类

package com.xinyi.es.service.impl;

import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteRequestBuilder;
import org.elasticsearch.action.delete.DeleteResponse;
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.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
* @Author: liang.he
* @Desc: ES-2.4.6相关测试
* @Date: Created in 15:58 2018/5/18
*/
@Service
public class EsServiceImpl {

@Value("${application.es.clusterName}")
private String clusterName;

@Value("${application.es.ip}")
private String esIp;

@Value("${application.es.port}")
private Integer esPort;

private TransportClient client;

@PostConstruct
public TransportClient getClient() {

if(client!=null){
return client;
}
Settings settings = Settings.settingsBuilder()
.put("cluster.name", clusterName).build();
try {
client = TransportClient.builder().settings(settings).build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(esIp), esPort));
} catch (Exception e) {
System.out.println("clusterName or ip or port is Error!");
e.printStackTrace();
}
return client;

}

public List Map String, Object query(String indexName,String typeName,String filedName,String value,Integer pageIndex,Integer pageSize) {

QueryBuilder qb = QueryBuilders.matchPhraseQuery(filedName, value);
SearchResponse respOnse= client.prepareSearch(indexName)
.setTypes(typeName).setQuery(qb).setFrom(pageIndex).setSize(pageSize).execute().actionGet();
List Map String, Object result= new ArrayList Map String,Object ();
for (SearchHit hit : response.getHits().getHits()) {
result.add(hit.getSource());
}
return result;

}

public int insertEs(String indexName,String typeName,Map String,Object source) {
BulkRequestBuilder bulkRequest = client.prepareBulk();
bulkRequest.add(client.prepareIndex(indexName,typeName).setSource(source));
BulkResponse respOnse= bulkRequest.get();
if(response.hasFailures()){
System.out.println("数据插入失败"+source);
return 0;
}
return 1;
}
public int deleteById(String indexName,String typeName,String id){
try {
DeleteRequestBuilder deleteRequest = client.prepareDelete(indexName,typeName,id);
DeleteResponse respOnse= deleteRequest.execute().actionGet();
response.getId();
}catch (Exception e){
e.printStackTrace();
return 0;
}
return 1;
}

public void close(){
if (client!=null){
client.close();
}
}
}


推荐阅读
  • 本文详细探讨了 Java 中 com.codahale.metrics.servlets.AdminServlet.() 方法的实现与应用,并提供了多个实际项目中的代码示例,帮助开发者更好地理解和使用这一方法。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • 本文深入探讨了JLine库中的ConsoleReader.drawBuffer()方法的使用场景和具体实现,通过多个实际代码示例,帮助开发者更好地理解和应用此方法。 ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
  • 深入解析Android Activity生命周期
    本文详细探讨了Android中Activity的生命周期,通过实例代码和详细的步骤说明,帮助开发者更好地理解和掌握Activity各个阶段的行为。 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • 本文探讨了六项Java特性,它们虽然强大,但在不当使用时可能会给应用程序带来严重问题。文章基于作者Nikita Salnikov Tarnovski多年的应用性能调优经验,提供了对这些特性的深入分析。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 本文详细介绍了Spring AOP注解的基本概念及其实现方式,并通过实例演示了如何在项目中使用这些注解进行面向切面的编程。旨在帮助开发者更好地理解和运用Spring AOP功能。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
author-avatar
df0134330
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有