stu

Java2019. 3. 11. 19:42

package com.Elastic.srv;


import java.io.IOException;


import org.apache.lucene.queryparser.flexible.core.builders.QueryBuilder;

import org.apache.lucene.search.join.ScoreMode;

import org.apache.lucene.search.spans.SpanTermQuery;

import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;

import org.elasticsearch.action.admin.indices.get.GetIndexRequest;

import org.elasticsearch.action.get.GetRequest;

import org.elasticsearch.action.get.GetResponse;

import org.elasticsearch.action.index.IndexResponse;

import org.elasticsearch.action.search.SearchRequest;

import org.elasticsearch.action.search.SearchResponse;

import org.elasticsearch.client.RequestOptions;

import org.elasticsearch.client.RestHighLevelClient;

import org.elasticsearch.index.query.BoolQueryBuilder;

import org.elasticsearch.index.query.MatchAllQueryBuilder;

import org.elasticsearch.index.query.MatchQueryBuilder;

import org.elasticsearch.index.query.NestedQueryBuilder;

import org.elasticsearch.index.query.QueryBuilders;

import org.elasticsearch.search.SearchHit;

import org.elasticsearch.search.SearchHits;

import org.elasticsearch.search.builder.SearchSourceBuilder;

import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;


public class MAIN {

static private String defaultIndex = "hex_color_list"; // index

static private RestHighLevelClient rhlc = null;

static public void main(String[] args) throws IOException {

System.out.println("test ... 중");

rhlc =  ElasticSearchConnector.getClient();

//doMatchingQuery();

//defaultFullTextSearch();

//tstFunc();

getDocument();

System.out.println("test ... 끝");

}

static public void tstFunc() {

//GetIndexRequest request = new GetIndexRequest()

SearchRequest sr = new SearchRequest();

SearchSourceBuilder sb = new SearchSourceBuilder();

sb.query(QueryBuilders.nestedQuery

("obj1", QueryBuilders.boolQuery()

.must(QueryBuilders.matchQuery("obj1.name", "john"))

.must(QueryBuilders.rangeQuery("obj1.age")

.from(5)

.to(31)

.includeLower(true)

.includeUpper(true)), ScoreMode.Avg));

sr.source(sb);

try {

SearchResponse response = rhlc.search(sr, RequestOptions.DEFAULT);

SearchHits searchHits = response.getHits();


for (SearchHit hit : searchHits) {

// totalHits 

System.out.println(hit.getSourceAsString());

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

static public void aliasSearch() {

IndicesAliasesRequest request = new IndicesAliasesRequest();

}

static public void doMatchingQuery() throws IOException {

// [1] create SearchRequest

SearchRequest sr = new SearchRequest();

SearchSourceBuilder sb = new SearchSourceBuilder();

//sb.query(QueryBuilders.matchQuery("name", "b84c4c"));


//SpanTermQuery("name", "b84c4c");

sr.indices(defaultIndex);

sr.source(sb);

SearchResponse response = rhlc.search(sr, RequestOptions.DEFAULT);

SearchHits searchHits = response.getHits();

//System.out.println(searchHits);

// 매칭 되는 갯수 

long totalHits = searchHits.getTotalHits();

// 얼마만큼 매칭 되는지 

double maxScore = searchHits.getMaxScore();

System.out.println(totalHits);

System.out.println(maxScore);

for (SearchHit hit : searchHits) {

// totalHits 

System.out.println(hit.getSourceAsString());

}

}

static private void SpanTermQuery(String string, String string2) {

// TODO Auto-generated method stub

}

static public void getDocument() {

// index, type, id

GetRequest getRequest = new GetRequest("hex_color_list","doc","1");

try {

GetResponse getResponse = rhlc.get(getRequest, RequestOptions.DEFAULT);

String id   = getResponse.getId();

String idx  = getResponse.getIndex();

String type = getResponse.getType();

String sourceAsString = getResponse.getSourceAsString();

System.out.println("id : " + id + "  index: " + idx + "  type: " + type );

System.out.println (sourceAsString);

} catch (IOException e) {

System.out.println(e);

}

}


static public void defaultFullTextSearch() throws IOException {

HighlightField field = null;

// [1] create SearchRequest

SearchRequest sr = new SearchRequest();

SearchSourceBuilder sb = new SearchSourceBuilder();

sb.query(QueryBuilders.matchAllQuery());

sr.indices(defaultIndex);

sr.source(sb);

SearchResponse response = rhlc.search(sr, RequestOptions.DEFAULT);

SearchHit[] searchHits = response.getHits().getHits();

//System.out.println(searchHits);

for (SearchHit hit : searchHits) {

field = hit.getHighlightFields().get("name");

System.out.println(hit.getSourceAsString());

}

}

// indx response

static public void indxResponse() {

//IndexResponse response = rhlc.

}

}



'Java' 카테고리의 다른 글

java + beautifulsoup  (0) 2019.02.09
java + mysql 연동  (0) 2019.02.07
java yaml 파일 읽기  (0) 2019.01.20
java_yaml  (0) 2018.12.16