public Map<String, Object> query(final String indexName, final String fieldKey, final String fieldValue) { if (fieldKey == null || fieldValue.length() == 0) return null; // prepare request BoolQueryBuilder query = QueryBuilders.boolQuery(); query.filter(QueryBuilders.constantScoreQuery(QueryBuilders.termQuery(fieldKey, fieldValue))); SearchRequestBuilder request = elasticsearchClient.prepareSearch(indexName) .setSearchType(SearchType.QUERY_THEN_FETCH) .setQuery(query) .setFrom(0) .setSize(1) .setTerminateAfter(1); // get response SearchResponse response = request.execute().actionGet(); // evaluate search result SearchHit[] hits = response.getHits().getHits(); if (hits.length == 0) return null; assert hits.length == 1; Map<String, Object> map = hits[0].getSource(); return map; }
public Map<String, Object> query(final String indexName, final String typeName, final QueryBuilder query) { SearchRequestBuilder request = elasticsearchClient.prepareSearch(indexName); if (typeName != null) request.setTypes(typeName); request .setSearchType(SearchType.QUERY_THEN_FETCH) .setQuery(query) .setFrom(0) .setSize(1).setTerminateAfter(1); // get response SearchResponse response = request.execute().actionGet(); // evaluate search result //long totalHitCount = response.getHits().getTotalHits(); SearchHit[] hits = response.getHits().getHits(); if (hits.length == 0) return null; assert hits.length == 1; Map<String, Object> map = hits[0].getSourceAsMap(); if (!map.containsKey("id")) map.put("id", hits[0].getId()); if (!map.containsKey("type")) map.put("type", hits[0].getType()); return map; }
if (options.getScroll() != null) builder.setScroll(options.getScroll()); if (options.getTimeout() != null) builder.setTimeout(options.getTimeout()); if (options.getTerminateAfter() != null) builder.setTerminateAfter(options.getTerminateAfter()); if (options.getRouting() != null) builder.setRouting(options.getRouting()); if (options.getPreference() != null) builder.setPreference(options.getPreference());