1、写入
查看配置文件
more /export/servers/es/elasticsearch6.0.0/config/elasticsearch.yml

@Before
public void getEsClient() throws UnknownHostException {
Settings settings = Settings.builder().put("cluster.name","myes").build();
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("node-01"),9300))
.addTransportAddress(new TransportAddress(InetAddress.getByName("node-02"),9300))
.addTransportAddress(new TransportAddress(InetAddress.getByName("node-03"),9300));
}
@After
public void close(){
client.close();
}
JSONObject json1 = new JSONObject();
json1.put("name","liudehua");
json1.put("age",20);
json1.put("sex","0");
String str1 = JSONObject.toJSONString(json1);
IndexRequestBuilder requestBuilder = client.prepareIndex(indexName, typeName, "1").setSource(str1, XContentType.JSON);
requestBuilder.execute().actionGet();
Map<String,String> maps = new HashMap<>();
maps.put("name","caiyilin");
maps.put("age","18");
maps.put("sex","1");
client.prepareIndex(indexName,typeName,"2").setSource(maps).execute().actionGet();
XContentBuilder xContentBuilder = XContentFactory.jsonBuilder()
.startObject()
.field("name","zhoujielun")
.field("age","22")
.field("addr","zhongguotaiwan")
.endObject();
client.prepareIndex(indexName,typeName,"3").setSource(xContentBuilder).get();
Person person = new Person();
person.setName("zhouchuanxiong");
person.setAge(18);
person.setSex(0);
String jsonString = JSON.toJSONString(person);
client.prepareIndex(indexName,typeName,"4").setSource(jsonString,XContentType.JSON).get();
BulkRequestBuilder bulk = client.prepareBulk();
JSONObject json2 = new JSONObject();
json2.put("name","renxianqi");
json2.put("age",20);
json2.put("sex","0");
String str2 = JSONObject.toJSONString(json2);
IndexRequestBuilder requestBuilder1 = client.prepareIndex(indexName, typeName, "5").setSource(str2, XContentType.JSON);
JSONObject json3 = new JSONObject();
json3.put("name","wubai");
json3.put("age",20);
json3.put("sex","0");
String str3 = JSONObject.toJSONString(json3);
IndexRequestBuilder requestBuilder2 = client.prepareIndex(indexName, typeName, "6").setSource(str3, XContentType.JSON);
bulk.add(requestBuilder1);
bulk.add(requestBuilder2);
bulk.get();
2、查询
- 先执行cn.hanjiaxiaozhi.es.getdata.BulkDataTest,插入模拟数据
- 查询某个documentId的数据
GetResponse response = client.prepareGet(indexName, typeName, "11").get();
Map<String, Object> maps = response.getSourceAsMap();
String sourceAsString = response.getSourceAsString();
System.out.println(maps);
System.out.println(sourceAsString);
SearchResponse searchResponse = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.matchAllQuery())
.setSize(11)
.get();
SearchHit[] hits = searchResponse.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchResponse range = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.rangeQuery("age").gte(18).lt(28))
.get();
SearchHit[] hits = range.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchResponse term = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.termQuery("say", "大刀的"))
.get();
SearchHit[] hits = term.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchResponse match = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.matchQuery("say", "大刀的"))
.get();
SearchHit[] hits = match.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchResponse fuzzy = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.fuzzyQuery("say", "helee").fuzziness(Fuzziness.TWO))
.get();
SearchHit[] hits = fuzzy.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchResponse wildcard = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.wildcardQuery("say", "he???")).get();
SearchHit[] hits = wildcard.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
RangeQueryBuilder age = QueryBuilders.rangeQuery("age").gt(18).lt(28);
TermQueryBuilder sex = QueryBuilders.termQuery("sex", "1");
BoolQueryBuilder bool1 = QueryBuilders.boolQuery().must(age).must(sex);
RangeQueryBuilder id = QueryBuilders.rangeQuery("id").gt(5).lt(13);
SearchResponse bool = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.boolQuery().should(bool1).should(id))
.get();
SearchHit[] hits = bool.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchResponse page = client.prepareSearch(indexName)
.setTypes(typeName)
.setFrom(0)
.setSize(3)
.addSort("age", SortOrder.DESC)
.get();
SearchHit[] hits = page.getHits().getHits();
for (SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
SearchRequestBuilder requestBuilder = client.prepareSearch(indexName)
.setTypes(typeName)
.setQuery(QueryBuilders.termQuery("say", "大刀"));
HighlightBuilder highlightBuilder = new HighlightBuilder();
highlightBuilder.preTags("").field("say").postTags("");
SearchResponse searchResponse = requestBuilder.highlighter(highlightBuilder).get();
SearchHit[] hits = searchResponse.getHits().getHits();
for (SearchHit hit : hits) {
Text[] says = hit.getHighlightFields().get("say").fragments();
for (Text say : says) {
System.out.println(say);
}
}
3、更新
@Test
public void updateData(){
Person person = new Person(5, "宋江", 100, 1, "水泊梁山", "110", "[email protected]", "我很快乐");
String jsonString = JSON.toJSONString(person);
client.prepareUpdate(indexName,typeName,"1").setDoc(jsonString, XContentType.JSON).get();
}
4、删除
@Test
public void deleteData(){
client.admin().indices().prepareDelete(indexName).get();
}