您的位置:首页 > 编程语言 > Java开发

elasticsearch Java

2016-07-03 11:16 459 查看
下载elasticsearch将jar包导入到工程里

创建客户端类

package es;

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;

import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;

import org.elasticsearch.action.bulk.BulkItemResponse;

import org.elasticsearch.action.bulk.BulkRequestBuilder;

import org.elasticsearch.action.bulk.BulkResponse;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.client.Client;

import org.elasticsearch.client.transport.TransportClient;

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.elasticsearch.search.SearchHits;

public class ESClient

{
private Client client;
 
public ESClient()
{
try
{

                     //集群连接
client =TransportClient.builder().build()
           .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
} catch (UnknownHostException e)
{
e.printStackTrace();

}
public Client getClient()
{
   return client;
}
 

  //创建索引
public void createIndex(String index)
{
client.admin().indices().create(new CreateIndexRequest(index)).actionGet();  
// waitForYellow  
    client.admin().cluster().health(new ClusterHealthRequest(index).waitForYellowStatus()).actionGet();
}

//添加数据
public void addData(String index,String type, List<String>jsondata){

         System.out.println(jsondata);

         

        BulkRequestBuilder bulkRequest = client.prepareBulk();
for(int i=0; i<jsondata.size(); i++){
   bulkRequest.add(client.prepareIndex().setIndex(index).setType(type).setId(i+1+"").setSource(jsondata.get(i)));
    }
BulkResponse bulkResponse = bulkRequest.execute().actionGet();
if (bulkResponse.hasFailures())
{
Iterator<BulkItemResponse> iter = bulkResponse.iterator();
while (iter.hasNext())
{
BulkItemResponse itemResponse = iter.next();
if (itemResponse.isFailed())
{
System.out.println("==bulk add error===type:" + type + " error:"+ itemResponse.getFailureMessage());
}
}
}

    }

//查询  
public List<Data> queryData(String index,String type,String queryString){
   QueryBuilder queryBuilder =  QueryBuilders.matchQuery("videoname", queryString);

        SearchResponse searchResponse = client.prepareSearch(index).setTypes(type)

                .setQuery(queryBuilder)

                .execute()

                .actionGet();

        SearchHits hits = searchResponse.getHits();

        int size = (int) hits.getTotalHits();

        System.out.println("查询到记录数:" + size);

        if(size==0)

        {

        return null;

        }

        

        SearchHit[] searchHists = hits.getHits();

        List<Data> lst = new ArrayList<>();

        for(SearchHit sh : searchHists){

            lst.add(new Data((String) sh.getSource().get("videoname"),(String) sh.getSource().get("videoaddress")));

        }

        return lst;
}

public void close() {
    client.close();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: