产品动态
产品公告
安全公告

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>6.4.3</version></dependency>
import org.apache.http.HttpHost;import org.apache.http.auth.AuthScope;import org.apache.http.auth.UsernamePasswordCredentials;import org.apache.http.client.CredentialsProvider;import org.apache.http.impl.client.BasicCredentialsProvider;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;import org.apache.log4j.BasicConfigurator;import org.apache.log4j.Logger;import org.elasticsearch.ElasticsearchException;import org.elasticsearch.action.DocWriteResponse;import org.elasticsearch.action.index.IndexRequest;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.action.get.GetRequest;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestClientBuilder;import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.rest.RestStatus;import java.util.Date;import java.util.HashMap;import java.util.Map;public class test_es_sdk {private static Logger logger = Logger.getLogger(test_es_sdk.class);public static void main(String[]args){BasicConfigurator.configure();// 设置验证信息,填写账号及密码final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();credentialsProvider.setCredentials(AuthScope.ANY,new UsernamePasswordCredentials("user", "passwd"));// 初始化 RestClient, hostName 和 port 填写集群的内网 VIP 地址与端口RestClientBuilder builder = RestClient.builder(new HttpHost("xx.xx.xx.xx", 9200, "http"));// 设置认证信息builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {@Overridepublic HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);}});// 设置超时时间builder.setMaxRetryTimeoutMillis(10000);// 由Low Level Client构造High Level ClientRestHighLevelClient client = new RestHighLevelClient(builder);// 索引文档Map<String, Object> jsonMap = new HashMap<String, Object>();jsonMap.put("user", "bellen");jsonMap.put("name", new Date());jsonMap.put("message", "trying out Elasticsearch");IndexRequest indexRequest = new IndexRequest("posts", "doc", "1").source(jsonMap);try {// 获取响应结果IndexResponse indexResponse = client.index(indexRequest);String index = indexResponse.getIndex();String type = indexResponse.getType();String id = indexResponse.getId();long version = indexResponse.getVersion();if (indexResponse.getResult() == DocWriteResponse.Result.CREATED) {logger.info("doc indexed, index: "+ index +", type:"+ type +",id:"+ id+",version:"+version);} else if (indexResponse.getResult() == DocWriteResponse.Result.UPDATED) {logger.info("doc updated, index: "+ index +", type:"+ type +",id:"+ id+",version:"+version);}}catch(ElasticsearchException e) {if (e.status() == RestStatus.CONFLICT) {logger.error("version conflict");}}catch(Exception e){logger.error("execute index api failed, "+ e.toString());}// 查询文档GetRequest getRequest = new GetRequest("posts","doc","1");try {// 获取响应结果GetResponse getResponse = client.get(getRequest);String index = getResponse.getIndex();String type = getResponse.getType();String id = getResponse.getId();if (getResponse.isExists()) {long version = getResponse.getVersion();String sourceAsString = getResponse.getSourceAsString();logger.info("get doc, index: "+ index +", type:"+ type +",id:"+ id+",version:"+version +", source:"+ sourceAsString);}}catch (ElasticsearchException e) {if (e.status() == RestStatus.NOT_FOUND) {logger.warn("doc not found");}}catch(Exception e){logger.error("execute get api failed, "+ e.toString());}// 关闭客户端try {client.close();}catch (Exception e){logger.error("close rest client exception:"+ e.toString());}}}
pip install elasticsearch
Elasticsearch 函数的参数中设置如下3个参数关闭节点嗅探:sniff_on_start=Falsesniff_on_connection_fail=Falsesniffer_timeout=Nonefrom elasticsearch import Elasticsearches = Elasticsearch(["http://xx.xx.xx.xx:9200"],http_auth=('user', 'passwd'),sniff_on_start=False,sniff_on_connection_fail=False,sniffer_timeout=None)res = es.index(index="my_index", doc_type="my_type", id=1, body={"title": "One", "tags": ["ruby"]})print(res)res = es.get(index="my_index", doc_type="my_type", id=1)print(res['_source'])
StaticConnectionPool,不要使用节点嗅探连接池。$client = ClientBuilder::create()->setConnectionPool('\\Elasticsearch\\ConnectionPool\\StaticConnectionPool', ["http://user:passwd@xx.xx.xx.xx:9200"])->build();
go get github.com/olivere/elastic
NewClient函数的参数中设置elastic.SetSniff(false)关闭节点嗅探,设置elastic.SetHealthcheck(false)关闭对节点的健康检查。import ("context""fmt""github.com/olivere/elastic")func main() {client, err := elastic.NewClient(elastic.SetURL("http://user:passwd@xx.xx.xx.xx:9200"),elastic.SetSniff(false),elastic.SetHealthcheck(false))if err != nil {panic(err)}exists, err := client.IndexExists("twitter").Do(context.Background())if err != nil {panic(err)}fmt.Println(exists)}
文档反馈