ES 2.4 java API search APIs
来源:互联网 发布:个人简介网页制作源码 编辑:程序博客网 时间:2024/05/17 04:59
It can be executed across one or more indices and across one or more types.
SearchResponse response = client.prepareSearch("index1", "index2") .setTypes("type1", "type2") .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(QueryBuilders.termQuery("multi", "test")) // Query .setPostFilter(QueryBuilders.rangeQuery("age").from(12).to(18)) // Filter .setFrom(0).setSize(60).setExplain(true) .execute() .actionGet();
滚动参数(通过搜索请求和每一个滚动的要求)告诉Elasticsearch多久应保持搜索中活着。它的价值(例如1m,看时间unitsedit)不需要足够长的时间来处理所有的数据 - 只需要足够长的时间来处理结果的前一批。每个滚动请求(带有滚动参数)设置一个新的到期时间。
通常,后台合并过程通过合并较小的段来创建新的更大的段,从而在较小的段被删除时优化索引。此过程在滚动过程中继续,但打开的搜索上下文防止旧段在仍在使用时被删除。这是怎样的Elasticsearch能够返回的初始搜索请求的结果,无论对文件的更改。
import static org.elasticsearch.index.query.QueryBuilders.*;QueryBuilder qb = termQuery("multi", "test");SearchResponse scrollResp = client.prepareSearch(test) .addSort(SortParseElement.DOC_FIELD_NAME, SortOrder.ASC) .setScroll(new TimeValue(60000)) .setQuery(qb) .setSize(100).execute().actionGet(); //100 hits per shard will be returned for each scroll//Scroll until no hits are returnedwhile (true) { for (SearchHit hit : scrollResp.getHits().getHits()) { //Handle the hit... } scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new TimeValue(60000)).execute().actionGet(); //Break condition: No hits are returned if (scrollResp.getHits().getHits().length == 0) { break; }}
Multi Search API
The multi search API allows to execute several search requests within the same API.
SearchRequestBuilder srb1 = client .prepareSearch().setQuery(QueryBuilders.queryStringQuery("elasticsearch")).setSize(1);SearchRequestBuilder srb2 = client .prepareSearch().setQuery(QueryBuilders.matchQuery("name", "kimchy")).setSize(1);MultiSearchResponse sr = client.prepareMultiSearch() .add(srb1) .add(srb2) .execute().actionGet();// You will get all individual responses from MultiSearchResponse#getResponses()long nbHits = 0;for (MultiSearchResponse.Item item : sr.getResponses()) { SearchResponse response = item.getResponse(); nbHits += response.getHits().getTotalHits();}terminate after 执行多少条后结束,可以检验是否提前结束
SearchResponse sr = client.prepareSearch(INDEX) .setTerminateAfter(1000) .get();if (sr.isTerminatedEarly()) { // We finished early}aggregations 聚合
SearchResponse sr = client.prepareSearch() .setQuery(QueryBuilders.matchAllQuery()) .addAggregation( AggregationBuilders.terms("agg1").field("field") ) .addAggregation( AggregationBuilders.dateHistogram("agg2") .field("birth") .interval(DateHistogramInterval.YEAR) ) .execute().actionGet();// Get your facet resultsTerms agg1 = sr.getAggregations().get("agg1");DateHistogram agg2 = sr.getAggregations().get("agg2");
The count API allows one to easily execute a query and get the number of matches for that query.
import static org.elasticsearch.index.query.QueryBuilders.*;CountResponse response = client.prepareCount("test") .setQuery(termQuery("_type", "type1")) .execute() .actionGet();
阅读全文
0 0
- ES 2.4 java API search APIs
- ES 2.4 java API document APIs
- ES Search APIs(持续更新)
- Google Book Search APIs-----Data API
- ES 2.4 java API aggregation API
- ES java api
- ES java api
- ES Java api
- ES Java API
- ES Java API
- ES Java API
- ES Java API
- Java API [2.3] » Document APIs » Index API
- Google Book Search APIs——谷歌图书搜索API
- elasticsearch java api使用,es java封装
- iOS9新特性 - Search APIs
- iOS9新特性 - Search APIs
- iOS9 新特性 - Search APIs
- java.net.preferIPv4Stack的相关设置
- 复杂查询A表的某个字段在B表中的所有数量
- mysql查询计划详解
- [HDU 5187][组合数求和][快速幂+乘]zhx's contest
- JsonConvert转换时DateTime的转换
- ES 2.4 java API search APIs
- Eclipse改变相同代码高亮颜色
- java hashMap 线程安全
- nginx如何添加https
- Hibernate Projections(投影、统计、不重复结果)
- 文章标题
- Java设计模式(三) Visitor(访问者)模式及多分派场景应用
- Hibernate之Query接口的uniqueResult()方法
- Apache与Nginx的优缺点比较