java编写elk程序
public class AppTest
{
//提取到公共变量
TransportClient client = null;
@Before
public void begin() throws UnknownHostException {
//指定ES集群
Settings settings = Settings.builder().put("cluster.name","caies").build();
//创建访问ES服务器的客户端
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.101.201"),9300));
}
@Test
public void test1() throws UnknownHostException {
//System.out.println(client);
GetResponse response = client.prepareGet("lib3","user","1").execute().actionGet();
System.out.println(response.getSourceAsString());
//client.close();
}
//添加
@Test
public void test2() throws IOException {
XContentBuilder doc = XContentFactory.jsonBuilder()
.startObject()
.field("id", 1)
.field("title", "JAVA")
.field("content", "JAVA VERY STRONG!!!")
.field("postdate", "2019-03-16")
.field("url", "e.kgc,cn")
.endObject();
IndexResponse response = client.prepareIndex("index1","blog","10").setSource(doc).get();
System.out.println(response.status());
}
//删除
@Test
public void test3(){
DeleteResponse response = client.prepareDelete("index1", "blog", "10").get();
System.out.println(response.status());
}
//更新
@Test
public void test4() throws IOException, ExecutionException, InterruptedException {
UpdateRequest request = new UpdateRequest();
request.index("index1").type("blog").id("10").doc(
XContentFactory.jsonBuilder()
.startObject()
.field("title","JAVS学习")
.endObject()
);
UpdateResponse response = client.update(request).get();
System.out.println(response.status());
}
// 如果存在这条数据则执行updete 如果不存在,执行insert
@Test
public void test5() throws IOException {
IndexRequest request1 = new IndexRequest("index1","blog","8")
.source(
XContentFactory.jsonBuilder()
.startObject()
.field("id",2)
.field("title","学习")
.field("content","doc查询")
.field("postdate","2020-03-16")
.field("url","e.kgc.cn")
.endObject()
);
UpdateRequest request2 = new UpdateRequest("index1","blog","8")
.doc(
XContentFactory.jsonBuilder()
.startObject()
.field("name","es学习")
.endObject()
);
}
// 批量查询
@Test
public void test6(){
MultiGetResponse multiGetItemResponses = client.prepareMultiGet()
.add("index","blog","8","10")
.add("lib3", "user", "1", "2", "3").get();
for(MultiGetItemResponse item : multiGetItemResponses){
GetResponse response = item.getResponse();
if(response!=null && response.isExists()){
System.out.println(response.getSourceAsString());
}
}
}
// bulk批量操作
@Test
public void test7() throws IOException {
BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
bulkRequestBuilder.add(
client.prepareIndex("lib2","books","1")
.setSource(
XContentFactory.jsonBuilder()
.startObject()
.field("title","hodoop")
.field("price",59)
.endObject()
)
);
bulkRequestBuilder.add(
client.prepareIndex("lib2","books","2")
.setSource(
XContentFactory.jsonBuilder()
.startObject()
.field("title","spark")
.field("price",68)
.endObject()
)
);
BulkResponse response = bulkRequestBuilder.get();
System.out.println(response.status());
if (response.hasFailures()){
System.out.println("添加失败");
}else{
System.out.println("成功");
}
}
// 查询 matchAllQuery
@Test
public void test8(){
MatchAllQueryBuilder matchAllQueryBuild = QueryBuilders.matchAllQuery();
SearchResponse response = client.prepareSearch("lib3").setQuery(matchAllQueryBuild).setFrom(0).setSize(3).get();
SearchHits hits = response.getHits();
for(SearchHit hit : hits){
System.out.println(hit.getSourceAsString());
Map<String,Object> sourceAsMap = hit.getSourceAsMap();
for(String key : sourceAsMap.keySet()){
System.out.println(key+"="+sourceAsMap.get(key));
}
}
}
// 查询
@Test
public void test9(){
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("interests", "taiji");
SearchResponse response = client.prepareSearch("lib3").setQuery(matchQueryBuilder).setFrom(0).setSize(2).get();
SearchHits hits = response.getHits();
for(SearchHit hit : hits){
System.out.println(hit.getSourceAsString());
Map<String,Object> sourceAsMap = hit.getSourceAsMap();
for (String key : sourceAsMap.keySet()){
System.out.println(key+"="+sourceAsMap.get(key));
}
}
}
@Test
public void test10(){
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("kanshu", "address", "interests");
SearchResponse response = client.prepareSearch("lib3").setQuery(multiMatchQueryBuilder).setFrom(0).setSize(2).get();
SearchHits hits = response.getHits();
for(SearchHit hit : hits){
System.out.println(hit.getSourceAsString());
Map<String,Object> sourceAsMap = hit.getSourceAsMap();
for (String key : sourceAsMap.keySet()) {
System.out.println(key+"="+sourceAsMap.get(key));
}
}
}
// 词条查询
@Test
public void test11(){
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("interests", "taiji");
SearchResponse response = client.prepareSearch("lib3").setQuery(termQueryBuilder).setSize(3).get();
SearchHits hits = response.getHits();
for (SearchHit hit : hits){
System.out.println(hit.getSourceAsString());
}
}
@Test
public void test12(){
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("interests","taiji","kanshu");
SearchResponse response = client.prepareSearch("lib3").setQuery(termsQueryBuilder).setSize(3).get();
for (SearchHit hit : response.getHits()){
System.out.println(hit.getSourceAsString());
}
}
//
@Test
public void test13(){
RangeQueryBuilder builder = QueryBuilders.rangeQuery("birthday").from("1990-01-01").to("2000-01-01").format("yyyy-MM-dd");
SearchResponse response = client.prepareSearch("lib3").setQuery(builder).setSize(3).get();
for (SearchHit hit : response.getHits()){
System.out.println(hit.getSourceAsString());
}
}
@Test
public void test14(){
PrefixQueryBuilder builder = QueryBuilders.prefixQuery("name", "z");
RangeQueryBuilder builder1 = QueryBuilders.rangeQuery("birthday").from("1990-01-01").to("2020-10-01").format("yyyy-MM-dd");
WildcardQueryBuilder builder2 = QueryBuilders.wildcardQuery("name","z*");
WildcardQueryBuilder builder3 = QueryBuilders.wildcardQuery("name","zhiyuan");
FuzzyQueryBuilder builder4 = QueryBuilders.fuzzyQuery("interests","kanshu");
IdsQueryBuilder builder5 = QueryBuilders.idsQuery().addIds("1","2","3");
SearchResponse response = client.prepareSearch("lib3").setQuery(builder5).get();
for (SearchHit hit : response.getHits()){
System.out.println(hit.getSourceAsString());
}
}
// 聚合函数
@Test
public void test15() {
// 查询最大值
// MaxAggregationBuilder aggregationBuilder = AggregationBuilders.max("aggMax").field("age");
// SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
// Max aggMax = response.getAggregations().get("aggMax");
// System.out.println(aggMax.getValue());
// 查询最小值
// MinAggregationBuilder aggregationBuilder = AggregationBuilders.min("aggMin").field("age");
// SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
// Min aggMin = response.getAggregations().get("aggMin");
// System.out.println(aggMin.getValue());
// }
// 查询平均值
// AvgAggregationBuilder aggregationBuilder = AggregationBuilders.avg("aggAvg").field("age");
// SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
// Avg aggAvg = response.getAggregations().get("aggAvg");
// System.out.println(aggAvg.getValue());
//查询总和
SumAggregationBuilder aggregationBuilder = AggregationBuilders.sum("aggSum").field("age");
SearchResponse response = client.prepareSearch("lib3").addAggregation(aggregationBuilder).get();
Sum aggSum = response.getAggregations().get("aggSum");
System.out.println(aggSum.getValue());
}
//
@Test
public void test16(){
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()//.should()
.must(QueryBuilders.matchQuery("interests","kanshu"))
.mustNot(QueryBuilders.matchQuery("interests","taiji"));
SearchResponse response = client.prepareSearch("lib3").setQuery(boolQueryBuilder).get();
for (SearchHit hit : response.getHits()){
System.out.println(hit.getSourceAsString());
}
}
}
版权声明:本文为cai_and_luo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。