private void deleteBulkRequest(String objectId, String index, String type, String routing, String parent) { if (logger.isTraceEnabled()) { logger.trace("bulkDeleteRequest - objectId: {} - index: {} - type: {} - routing: {} - parent: {}", objectId, index, type, routing, parent); } if (definition.getParentTypes() != null && definition.getParentTypes().contains(type)) { QueryBuilder builder = QueryBuilders.hasParentQuery(type, QueryBuilders.termQuery(MongoDBRiver.MONGODB_ID_FIELD, objectId)); SearchResponse response = esClient.prepareSearch(index).setQuery(builder).setRouting(routing) .addField(MongoDBRiver.MONGODB_ID_FIELD).execute().actionGet(); for (SearchHit hit : response.getHits().getHits()) { getBulkProcessor(index, hit.getType()).deleteBulkRequest(hit.getId(), routing, objectId); } } getBulkProcessor(index, type).deleteBulkRequest(objectId, routing, parent); }
/** * Dataset specific search. * <p/> * @param searchTerm * @return */ private QueryBuilder datasetSearchQuery(int datasetId, String searchTerm) { QueryBuilder hasParent = hasParentQuery( Settings.META_DATASET_TYPE, matchQuery(Settings.META_ID, datasetId)); QueryBuilder query = getNameDescriptionMetadataQuery(searchTerm); QueryBuilder cq = boolQuery() .must(hasParent) .must(query); return cq; }
@Override public AtomQuery parseAtomMethodQuery(MethodInvocation invocation) throws ElasticSql2DslException { String parentType = invocation.getParameterAsString(0); SQLExpr filter = invocation.getParameter(1); BoolExpressionParser boolExpressionParser = new BoolExpressionParser(); String queryAs = invocation.getQueryAs(); SQLArgs sqlArgs = invocation.getSqlArgs(); BoolQueryBuilder filterBuilder = boolExpressionParser.parseBoolQueryExpr(filter, queryAs, sqlArgs); HasParentQueryBuilder hasParentQueryBuilder = QueryBuilders.hasParentQuery(parentType, filterBuilder, false); return new AtomQuery(hasParentQueryBuilder); } }