public void updateStatus(String url, String status) throws IOException { UpdateRequestBuilder update = getConnection().getClient() .prepareUpdate(getIndex(), getType(), url) .setDoc(jsonBuilder() .startObject() .field(STATUS_FIELD, status) .endObject()); getConnection().getProcessor().add(update.request()); }
public void store(HttpArticle article, Map<String, Object> fields) throws IOException { XContentBuilder jsonBuilder = jsonBuilder(); jsonBuilder.startObject(); applyFields(jsonBuilder, article, fields); jsonBuilder.endObject(); IndexRequestBuilder insert = getConnection().getClient() .prepareIndex(getIndex(), getType(), article.getUrl()) .setSource(jsonBuilder); getConnection().getProcessor().add(insert.request()); }
public List<HttpArticle> findByStatus(String status, int count) { BoolQueryBuilder filter = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(STATUS_FIELD, String.valueOf(status))); SearchResponse response = getConnection().getClient() .prepareSearch(getIndex()) .setTypes(getType()) .setSearchType(SearchType.DEFAULT) .setPostFilter(filter) .addSort(CREATED_FIELD, SortOrder.DESC) .setSize(count) .setFetchSource(true) .setExplain(false) .execute() .actionGet(); SearchHits hits = response.getHits(); return Arrays.stream(hits.getHits()) .map(SearchHit::getSource) .map(this::mapToHttpArticle) .collect(Collectors.toList()); }
public PageableList<HttpArticle> query(NamedQuery... queries) { BoolQueryBuilder query = QueryBuilders.boolQuery(); for (NamedQuery nq : queries) { addQuery(query, true, nq.getNotStemmedCaseSensitive(), "nostem_cs"); addQuery(query, true, nq.getNotStemmedCaseInSensitive(), "nostem_ci"); addQuery(query, true, nq.getStemmedCaseSensitive(), "stem_cs"); addQuery(query, true, nq.getStemmedCaseInSensitive(), "stem_ci"); if (!Strings.isNullOrEmpty(nq.getAdvanced())) { query.must(QueryBuilders.queryStringQuery(nq.getAdvanced()) .defaultOperator(Operator.AND)); } } SearchResponse response = getConnection().getClient().prepareSearch(getIndex()) .setTypes(getType()) .setQuery(query) .setSize(100) .setFetchSource(true) .addSort(PUBLISHED_FIELD, SortOrder.DESC) .setExplain(false) .execute() .actionGet(); List<HttpArticle> items = Arrays.stream(response.getHits().getHits()) .map(SearchHit::getSource) .filter(Objects::nonNull) .map(this::mapToHttpArticle) .collect(Collectors.toList()); return PageableList.create(items, response.getHits().getTotalHits()); }
.defaultOperator(Operator.AND)); SearchResponse response = getConnection().getClient().prepareSearch(getIndex()) .setTypes(getType()) .setQuery(query)