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();
}
}
创建客户端类
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();
}
}
相关文章推荐
- [leetcode-363]Max Sum of Rectangle No Larger Than K(java)
- Javascirpt闭包问题以及解决方案
- Java中==和equals()的区别
- Java 学习笔记
- java框架之springmvc07(国际化处理)
- Struts2校验方法validate以及validateXxx方法
- DAO设计模式
- Thinking in java-对象导论
- Error creating the view. An error occurred while automatically activating bundle
- Error creating the view. An error occurred while automatically activating bundle
- 二叉树的递归和非递归实现 java
- java时间和日期类型
- Java内存机制
- Spring学习(一)—入门
- 【Java进阶一】理解封装
- java 控制台输入的两种方式
- Java内存管理机制
- spring 10 bean配置-通过FactoryBean配置bean
- java 最长回文字串
- 关于java比较器