正常es安装好后肯定得测试一下连接是否正常,所以在此记录一个测试类;直接上代码
import org.apache.http.HttpHost;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.junit.Test;
import java.io.IOException;
public class TestEs {
/**
* 测试es连接
* @throws IOException
*/
@Test
public void testClient() throws IOException {
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http")));
GetRequest getRequest = new GetRequest(
"project_info",//index
"projectInfo", //type
"8");//参数id
boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);
System.out.println(exists);
client.close();
}
@Test
public void testSearchQuery() throws IOException {
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http")
)
);
SearchRequest searchRequest = new SearchRequest();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchQuery("sharing_content", "成果"));
searchRequest.indices("project_info");
searchRequest.types("projectInfo");
searchRequest.searchType(SearchType.QUERY_THEN_FETCH);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
SearchHit[] searchHits = hits.getHits();
for (SearchHit hit : searchHits) {
System.out.println(hit.getSourceAsString());
}
}
}
就这么简单,有问题请留言探讨,其他博客有相关实战查询可用参考使用。