
<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();// Set verification information by entering the username and passwordfinal CredentialsProvider credentialsProvider = new BasicCredentialsProvider();credentialsProvider.setCredentials(AuthScope.ANY,new UsernamePasswordCredentials("user", "passwd"));// Initialize RestClient. For hostName and port, enter the private VIP address and port of the cluster respectivelyRestClientBuilder builder = RestClient.builder(new HttpHost("xx.xx.xx.xx", 9200, "http"));// Set authentication informationbuilder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {@Overridepublic HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);}});// Set the timeout periodbuilder.setMaxRetryTimeoutMillis(10000);// Construct the High Level Client based on the Low Level ClientRestHighLevelClient client = new RestHighLevelClient(builder);// Index the documentMap<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 {// Get the response resultIndexResponse 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());}// Query the documentGetRequest getRequest = new GetRequest("posts","doc","1");try {// Get the response resultGetResponse 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());}// Close the clienttry {client.close();}catch (Exception e){logger.error("close rest client exception:"+ e.toString());}}}
pip install elasticsearch
Elasticsearch function to turn off node sniffing: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. Do not use the node sniffing connection pool.$client = ClientBuilder::create()->setConnectionPool('\\Elasticsearch\\ConnectionPool\\StaticConnectionPool', ["http://user:passwd@xx.xx.xx.xx:9200"])->build();
gopkg.in/olivere/elastic is a community-contributed SDK that is widely used in the Go language. The demo here is applicable to ES 6.4.3. For information on how to use other versions, please see here.go get github.com/olivere/elastic
NewClient function, set elastic.SetSniff(false) to turn off node sniffing and set elastic.SetHealthcheck(false) to turn off node health check.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)}
Feedback