进行全文搜索不同于文档查看,全文搜索在所有文档中查找与检索内容相关的内容(成为hit)的文档,并返回。
1.创建客户端
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("10.0.2.190",9200,"http")));
2.创建检索内容
//大多数的关于搜索的参数会存储在SearchSourceBuilder中,它提供了所有会出现在search request body中的参数的setter。
SearchSourceBuilder searchSourchBuilder = new SearchSourceBuilder();
searchSourchBuilder.query(QueryBuilders.termQuery("lyrics", "boys"));
3.生成请求
SearchRequest searchRequest = new SearchRequest("music");//music表示搜索的index。可以不加参数,那样意味着搜索所有index
searchRequest.types("songs").indicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN);//songs表示搜索的类型,可以为空
searchRequest.source(searchSourchBuilder);//将检索内容加入请求
4.发送请求并接收响应
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
5.处理响应结果
SearchHits searchHits = searchResponse.getHits();
SearchHit[] hits = searchHits.getHits();
//输出至控制台
for(SearchHit hit : hits) {
System.out.println(hit.getSourceAsString());
}
6.关闭client
client.close();