. elasticsearch安装
官方下载地址:https://www.elastic.co/downloads/elasticsearch
修改配置文件
1 2 3 4 |
cat config /elasticsearch .yml | grep - v "#" cluster.name: rainbow network.host: 127.0.0.1 http.port: 9200 |
cluster.name表示es集群的名称,可以自定义一个自己需要的集群名称
http.port 表示对外提供http服务时的http端口。
network.host 表示本地监听绑定的ip地址,此处为测试环境,直接使用本机的ip地址 127.0.0.1.
1 |
nohup . /bin/elasticsearch & |
es启动监听两个端口,9300和9200
9300端口是使用tcp客户端连接使用的端口;
9200端口是通过http协议连接es使用的端口;
2. 使用http方式增加和查询数据
增加数据(http PUT):
1 2 3 |
/user_idx/type_tags/12
'{"name" : "Mr.YF", "tags" : ["Go","Java","Lua","C++","Tcl","..."]}' { "_index" : "user_idx" , "_type" : "type_tags" , "_id" : "12" , "_version" :1, "_shards" :{ "total" :2, "successful" :1, "failed" :0}, "created" : true } |
3. 使用elasticsearch客户端编写java代码访问es
编写es客户端提供者类,对es连接做简单的封装
SearchClientProvider.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | package org.wyf.elasticsearch.search; /**
* Created by wyf on 16/9/25.
*/ import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.wyf.common.property.XmlProperties; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import static java.lang.System.out; public class SearchClientProvider {
private static final Logger LOGGER = LoggerFactory.getLogger(SearchClientProvider. class );
private
null ;
private volatile boolean
false ;
public TransportClient get() {
return this .client;
}
@PreDestroy
public synchronized void close() {
if ( this
null ) {
this .client.close();
}
}
@PostConstruct
public synchronized void init() {
if (!inited) {
try {
Map<String, String> config = XmlProperties.loadFromXml( "properties/elasticsearch.xml" );
if
null ) {
out.println( "load xml err" );
return ;
}
Iterator<Map.Entry<String, String>> iterator = config.entrySet().iterator();
new HashMap<String, String>();
while (iterator.hasNext()) {
Map.Entry<String, String> next = iterator.next();
if (!next.getKey().equals( "transport.addresses" )) {
settingConfig.put(next.getKey(), next.getValue());
}
}
Settings settings = Settings.builder().put(settingConfig).build();
TransportClient client = TransportClient.builder().settings(settings).build();
this .client = client;
String[] addresses = config.get( "transport.addresses" |