private SearchResult<String> search(String indexName, String structuredQuery, int start, int size, List<String> sortOptions, String freeTextQuery, String docType) { try { QueryBuilder queryBuilder = QueryBuilders.matchAllQuery(); if (StringUtils.isNotEmpty(structuredQuery)) { Expression expression = Expression.fromString(structuredQuery); queryBuilder = expression.getFilterBuilder(); } BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder); QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery(freeTextQuery); BoolQueryBuilder fq = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery); final SearchRequestBuilder srb = elasticSearchClient.prepareSearch(indexName) .setQuery(fq) .setTypes(docType) .storedFields("_id") .setFrom(start) .setSize(size); if (sortOptions != null) { sortOptions.forEach(sortOption -> addSortOptionToSearchRequest(srb, sortOption)); } SearchResponse response = srb.get(); LinkedList<String> result = StreamSupport.stream(response.getHits().spliterator(), false) .map(SearchHit::getId) .collect(Collectors.toCollection(LinkedList::new)); long count = response.getHits().getTotalHits(); return new SearchResult<String>(count, result); } catch (ParserException e) { throw new ApplicationException(Code.BACKEND_ERROR, e.getMessage(), e); } }
private SearchResponse search(String indexName, String structuredQuery, int start, int size, String freeTextQuery, String docType) throws ParserException { QueryBuilder queryBuilder = QueryBuilders.matchAllQuery(); if (StringUtils.isNotEmpty(structuredQuery)) { Expression expression = Expression.fromString(structuredQuery); queryBuilder = expression.getFilterBuilder(); } BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder); QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery(freeTextQuery); BoolQueryBuilder fq = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery); final SearchRequestBuilder srb = elasticSearchClient.prepareSearch(indexName) .setQuery(fq) .setTypes(docType) .storedFields("_id") .setFrom(start) .setSize(size); return srb.get(); }
.setTypes(getSearchIndex().getIdStrategy().getType()) .setQuery(QueryBuilders.boolQuery().must(query).filter(filterBuilder)) .storedFields( Elasticsearch5SearchIndex.ELEMENT_ID_FIELD_NAME, Elasticsearch5SearchIndex.ELEMENT_TYPE_FIELD_NAME, ); if (fetchHints.equals(FetchHints.NONE)) { searchRequestBuilder.storedFields( Elasticsearch5SearchIndex.OUT_VERTEX_ID_FIELD_NAME, Elasticsearch5SearchIndex.IN_VERTEX_ID_FIELD_NAME,
.setTypes(getSearchIndex().getIdStrategy().getType()) .setQuery(QueryBuilders.boolQuery().must(query).filter(filterBuilder)) .storedFields( Elasticsearch5SearchIndex.ELEMENT_ID_FIELD_NAME, Elasticsearch5SearchIndex.ELEMENT_TYPE_FIELD_NAME, ); if (fetchHints.equals(FetchHints.NONE)) { searchRequestBuilder.storedFields( Elasticsearch5SearchIndex.OUT_VERTEX_ID_FIELD_NAME, Elasticsearch5SearchIndex.IN_VERTEX_ID_FIELD_NAME,
private void deleteExtendedDataForElement(Element element) { try { QueryBuilder filter = QueryBuilders.termQuery(ELEMENT_ID_FIELD_NAME, element.getId()); SearchRequestBuilder s = getClient().prepareSearch(getIndicesToQuery()) .setTypes(getIdStrategy().getType()) .setQuery(QueryBuilders.boolQuery().must(QueryBuilders.matchAllQuery()).filter(filter)) .storedFields( ELEMENT_ID_FIELD_NAME, EXTENDED_DATA_TABLE_NAME_FIELD_NAME, EXTENDED_DATA_TABLE_ROW_ID_FIELD_NAME ); SearchResponse searchResponse = checkForFailures(s.execute().get()); for (SearchHit hit : searchResponse.getHits()) { if (MUTATION_LOGGER.isTraceEnabled()) { LOGGER.trace("deleting extended data document %s", hit.getId()); } getIndexRefreshTracker().pushChange(hit.getIndex()); getClient().prepareDelete(hit.getIndex(), hit.getType(), hit.getId()).execute().actionGet(); } } catch (Exception ex) { throw new VertexiumException("Could not delete extended data for element: " + element.getId()); } }
private void deleteExtendedDataForElement(Element element) { try { QueryBuilder filter = QueryBuilders.termQuery(ELEMENT_ID_FIELD_NAME, element.getId()); SearchRequestBuilder s = getClient().prepareSearch(getIndicesToQuery()) .setTypes(getIdStrategy().getType()) .setQuery(QueryBuilders.boolQuery().must(QueryBuilders.matchAllQuery()).filter(filter)) .storedFields( ELEMENT_ID_FIELD_NAME, EXTENDED_DATA_TABLE_NAME_FIELD_NAME, EXTENDED_DATA_TABLE_ROW_ID_FIELD_NAME ); SearchResponse searchResponse = checkForFailures(s.execute().get()); for (SearchHit hit : searchResponse.getHits()) { if (MUTATION_LOGGER.isTraceEnabled()) { LOGGER.trace("deleting extended data document %s", hit.getId()); } getIndexRefreshTracker().pushChange(hit.getIndex()); getClient().prepareDelete(hit.getIndex(), hit.getType(), hit.getId()).execute().actionGet(); } } catch (Exception ex) { throw new VertexiumException("Could not delete extended data for element: " + element.getId()); } }