Refine search
return FilterBuilders.inFilter(key, value); case NOT_EQUAL: return FilterBuilders.notFilter(FilterBuilders.inFilter(key, value)); case LESS_THAN: return FilterBuilders.rangeFilter(key).lt(value); case LESS_THAN_EQUAL: return FilterBuilders.rangeFilter(key).lte(value); case GREATER_THAN: return FilterBuilders.rangeFilter(key).gt(value); case GREATER_THAN_EQUAL: return FilterBuilders.rangeFilter(key).gte(value); default: throw new IllegalArgumentException("Unexpected relation: " + numRel); AndFilterBuilder b = FilterBuilders.andFilter(); for (String term : Text.tokenize((String)value)) { b.add(FilterBuilders.termFilter(fieldName, term)); return FilterBuilders.prefixFilter(fieldName, (String) value); } else if (titanPredicate == Text.CONTAINS_REGEX) { value = ((String) value).toLowerCase(); return FilterBuilders.regexpFilter(fieldName, (String) value); } else if (titanPredicate == Text.PREFIX) { return FilterBuilders.prefixFilter(fieldName, (String) value); } else if (titanPredicate == Text.REGEX) { return FilterBuilders.regexpFilter(fieldName, (String) value); } else if (titanPredicate == Cmp.EQUAL) { return FilterBuilders.termFilter(fieldName, (String) value); } else if (titanPredicate == Cmp.NOT_EQUAL) {
final BoolQueryBuilder qb = QueryBuilders.boolQuery().must(leftQuery).must(rightQuery); queryBuilders.push( qb ); final BoolFilterBuilder fb = FilterBuilders.boolFilter().must(leftFilter).must(rightFilter); filterBuilders.push( fb );
/** * Generate the field name term for the field name for filters */ private NestedFilterBuilder fieldNameTerm( final String fieldName, final FilterBuilder fieldValueBuilder ) { final BoolFilterBuilder booleanQuery = FilterBuilders.boolFilter(); booleanQuery.must( FilterBuilders.termFilter( IndexingUtils.FIELD_NAME_NESTED, fieldName ) ); booleanQuery.must( fieldValueBuilder ); return FilterBuilders.nestedFilter( IndexingUtils.ENTITY_FIELDS, booleanQuery ); }
BoolFilterBuilder boolQueryFilter = FilterBuilders.boolFilter(); boolQueryFilter.must( FilterBuilders.termFilter( IndexingUtils.EDGE_SEARCH_FIELDNAME, context ) ); typeTerms[i] = FilterBuilders.termFilter( IndexingUtils.ENTITY_TYPE_FIELDNAME, sourceTypes[i] ); boolQueryFilter.must( FilterBuilders.orFilter( typeTerms ) );
protected SearchResponse retrieveByField(String field, Object value, String[] includeFields) throws Exception { // The query here is using the exact value match. // https://www.elastic.co/guide/en/elasticsearch/guide/1.x/_finding_exact_values.html SearchRequestBuilder builder = esClient.prepareSearch() .setIndices(getIndexName()).setTypes(getDocTypeName()) .setQuery(QueryBuilders .filteredQuery(QueryBuilders.matchAllQuery(), FilterBuilders.termsFilter(field, value))) .setFetchSource(includeFields, null).setVersion(true); return builder.execute().actionGet(); }
service.flushCheckpoint(); QueryBuilder queryBuilder = termQuery("topic", topic); RangeFilterBuilder filterBuilder = rangeFilter("timestamp").gte(lastSeen); SearchResponse searchResponse = client.prepareSearch() .setIndices(pubSubIndexName) .setTypes("publish") .setSearchType(SearchType.SCAN) .setScroll(scrollTimeout) .setQuery(queryBuilder)
SearchResponse sr = client .prepareSearch(activityLogIndexName) .setTypes(activityLogTypeName) .setPostFilter( FilterBuilders.andFilter( FilterBuilders.termFilter(ProjectIndexingInfo.DOCFIELD_PROJECT_KEY, projectKey), FilterBuilders.termFilter(ProjectIndexingInfo.DOCFIELD_RIVER_NAME, riverName().getName()))) .setQuery(QueryBuilders.matchAllQuery()).addSort(ProjectIndexingInfo.DOCFIELD_START_DATE, SortOrder.DESC) .addField("_source").setSize(1).execute().actionGet(); if (sr.getHits().getTotalHits() > 0) {
protected SearchRequestBuilder addFindContentQueueRequestParams(SearchRequestBuilder searchRequestBuilder) { return searchRequestBuilder .setQuery(matchAllQuery()) .setTypes(indexedDocumentType) .setPostFilter( orFilter( missingFilter(SearchService.FIELD_INDEXED), termFilter(SearchService.FIELD_INDEXED, false))) .setSize(contentIndexBatchSize) .addFields(SearchService.FIELD_REFERENCE, SearchService.FIELD_SITEID); }
/** * Batch processing oriented API to retrieve deployment status events. This API is not intended for frequent requests but can retrieve lot of data. * * @return */ @ApiOperation(value = "Get deployment status events from a given date.", notes = "Batch processing oriented API to retrieve deployment status events. This API is not intended for frequent requests but can retrieve lot of data.", authorizations = { @Authorization("ADMIN"), @Authorization("APPLICATION_MANAGER") }) @RequestMapping(value = "/status", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PreAuthorize("hasAuthority('ADMIN')") public GetMultipleJsonResult get(@RequestBody @Valid TimedRequest timedRequest) { RangeFilterBuilder dateFilter = FilterBuilders.rangeFilter("date").gte(timedRequest.getIntervalStart()); if (timedRequest.getIntervalEnd() != null) { dateFilter.lt(timedRequest.getIntervalEnd()); } SearchResponse response = monitorDao.getClient().prepareSearch(monitorDao.getIndexForType(PaaSDeploymentStatusMonitorEvent.class)) .setTypes(MappingBuilder.indexTypeFromClass(PaaSDeploymentStatusMonitorEvent.class)).setQuery(QueryBuilders.constantScoreQuery(dateFilter)) .setFrom(timedRequest.getFrom()).setSize(timedRequest.getSize()).get(); GetMultipleJsonResult result = new GetMultipleJsonResult(); result.setData(ResponseUtil.rawMultipleData(response)); result.setTotalResults(response.getHits().getTotalHits()); result.setQueryDuration(response.getTookInMillis()); return result; }
private void deleteExtendedDataForElement(Element element) { try { FilterBuilder filter = FilterBuilders.termFilter(ElasticsearchSingleDocumentSearchIndex.EXTENDED_DATA_ELEMENT_ID_FIELD_NAME, element.getId()); SearchRequestBuilder s = getClient().prepareSearch(getIndicesToQuery()) .setTypes(ElasticsearchSingleDocumentSearchIndex.ELEMENT_TYPE) .setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), filter)) .addField(ElasticsearchSingleDocumentSearchIndex.EXTENDED_DATA_ELEMENT_ID_FIELD_NAME) .addField(ElasticsearchSingleDocumentSearchIndex.EXTENDED_DATA_TABLE_NAME_FIELD_NAME) .addField(ElasticsearchSingleDocumentSearchIndex.EXTENDED_DATA_TABLE_ROW_ID_FIELD_NAME); for (SearchHit hit : s.execute().get().getHits()) { if (MUTATION_LOGGER.isTraceEnabled()) { LOGGER.trace("deleting extended data document %s", hit.getId()); } getClient().prepareDelete(hit.getIndex(), ELEMENT_TYPE, hit.getId()).execute().actionGet(); } } catch (Exception ex) { throw new VertexiumException("Could not delete extended data for element: " + element.getId()); } }
/** * Batch processing oriented API to retrieve deployment status events. This API is not intended for frequent requests but can retrieve lot of data. * * @return */ @ApiOperation(value = "Get deployment status events from a given date.", notes = "Batch processing oriented API to retrieve deployment status events. This API is not intended for frequent requests but can retrieve lot of data.", authorizations = { @Authorization("ADMIN"), @Authorization("APPLICATION_MANAGER") }) @RequestMapping(value = "/status/scroll", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @PreAuthorize("hasAuthority('ADMIN')") public ScrollJsonResult get(@RequestBody @Valid ScrollTimedRequest timedRequest) { RangeFilterBuilder dateFilter = FilterBuilders.rangeFilter("date").gte(timedRequest.getIntervalStart()); if (timedRequest.getIntervalEnd() != null) { dateFilter.lt(timedRequest.getIntervalEnd()); } SearchResponse response = monitorDao.getClient().prepareSearch(monitorDao.getIndexForType(PaaSDeploymentStatusMonitorEvent.class)) .setTypes(MappingBuilder.indexTypeFromClass(PaaSDeploymentStatusMonitorEvent.class)).setQuery(QueryBuilders.constantScoreQuery(dateFilter)) .setScroll(TimeValue.timeValueMinutes(5)).setSize(timedRequest.getSize()).get(); return convert(response); }
@Override public void buildSearchForIndexedDocumentsNotUpdatedAfter(SearchRequestBuilder srb, String jiraProjectKey, Date date) { FilterBuilder filterTime = FilterBuilders.rangeFilter("_timestamp").lt(date); FilterBuilder filterProject = FilterBuilders.termFilter(indexFieldForProjectKey, jiraProjectKey); FilterBuilder filterSource = FilterBuilders.termFilter(indexFieldForRiverName, riverName); FilterBuilder filter = FilterBuilders.boolFilter().must(filterTime).must(filterProject).must(filterSource); srb.setQuery(QueryBuilders.matchAllQuery()).addField("_id").setPostFilter(filter); Set<String> st = new LinkedHashSet<String>(); st.add(issueTypeName); if (commentIndexingMode.isExtraDocumentIndexed()) st.add(commentTypeName); if (changelogIndexingMode.isExtraDocumentIndexed()) st.add(changelogTypeName); srb.setTypes(st.toArray(new String[st.size()])); }
@Override public Object[] findIdsByColumn(String schemaName, String tableName, String pKeyName, String columnName, Object columnValue, Class entityClazz) { TermFilterBuilder filter = FilterBuilders.termFilter(columnName, columnValue); SearchResponse response = txClient.prepareSearch(schemaName.toLowerCase()) .setTypes(tableName).addField(pKeyName).setFilter(filter).execute().actionGet(); SearchHits hits = response.getHits(); Long length = hits.getTotalHits(); int absoluteLength = length.intValue(); Object[] ids = new Object[absoluteLength]; int counter=0; for (SearchHit hit : hits.getHits()) { Map<String,SearchHitField> fields = hit.getFields(); ids[counter++]= fields.get(pKeyName).getValue(); } return ids; }
BoolFilterBuilder boundaryFilter = FilterBuilders.boolFilter(); FilterBuilders.rangeFilter(this.xField) FilterBuilders.rangeFilter(this.yField) termsList.add((String)termsMap.get(key)); boundaryFilter.must(FilterBuilders.termsFilter(filterPath, termsList).execution("or")); break; case "range": RangeFilterBuilder rangeFilterBuilder = FilterBuilders.rangeFilter(filterPath); boolQuery.must(QueryBuilders.queryStringQuery(StringEscapeUtils.escapeJavaScript((String) filter.get("query"))).field("body.en")); boundaryFilter.must(FilterBuilders.queryFilter(boolQuery)); break; default: .addAggregation( AggregationBuilders.histogram("xField") .field(this.xField) .execute() .actionGet();
@Override protected QueryBuilder createQuery(String queryString, String elementType, List<FilterBuilder> filters) { FilterBuilder elementTypeFilter = createElementTypeFilter(elementType); AndFilterBuilder andFilterBuilder = FilterBuilders.andFilter( elementTypeFilter, new AuthorizationFilterBuilder(getParameters().getAuthorizations().getAuthorizations()) if ((queryString != null && queryString.length() > 0) || (filters.size() > 0)) { BoolQueryBuilder boolChildQuery; childQuery = boolChildQuery = QueryBuilders.boolQuery(); QueryBuilders.filteredQuery( super.createQuery(queryString, elementType, filters), authorizationFilterBuilder boolChildQuery.must( new HasChildQueryBuilder(ElasticSearchParentChildSearchIndex.PROPERTY_TYPE, QueryBuilders.filteredQuery( QueryBuilders.matchAllQuery(), FilterBuilders.andFilter(authorizationFilterBuilder, filterBuilder)
return FilterBuilders.queryFilter(QueryBuilders.matchAllQuery()); AndFilterBuilder andResolutionAndMemoryFilterBuilder = FilterBuilders.andFilter(); if(resolutionFilters.size() > 0) OrFilterBuilder OrResolutionFilterBuilder = FilterBuilders.orFilter(); for (String resolution : resolutionFilters) OrResolutionFilterBuilder.add(FilterBuilders.termFilter(SearchDocumentFieldName.RESOLUTION.getFieldName(), resolution)); OrFilterBuilder OrMemoryFilterBuilder = FilterBuilders.orFilter(); for (String memory : memoryFilters) OrMemoryFilterBuilder.add(FilterBuilders.termFilter(SearchDocumentFieldName.MEMORY.getFieldName(), memory));
/** * Set SearchRequestBuilder parameters specific to current window. * * @see org.apache.apex.malhar.contrib.elasticsearch.ElasticSearchMapInputOperator#getSearchRequestBuilder() */ @Override protected SearchRequestBuilder getSearchRequestBuilder() { long time = System.currentTimeMillis(); return searchRequestBuilder.setPostFilter(FilterBuilders.rangeFilter(POST_DATE).from(testStartTime).to(time)) // Filter .setSize(15).setExplain(false); } };
private AndFilterBuilder getFilterBuilderForSearchCriteria(SearchCriteria searchCriteria) AndFilterBuilder andFilterBuilder = FilterBuilders.andFilter(); final OrFilterBuilder orFilterForFieldValueList = FilterBuilders.orFilter(); AndFilterBuilder andFilterBuilderForFieldValueMapInList = FilterBuilders.andFilter(); for (Entry<String, Object> entry : filterItems.entrySet()) final OrFilterBuilder orFilter = FilterBuilders.orFilter(); for (final String filterName : entry.getValue()) andFilterBuilder.add(FilterBuilders.nestedFilter(SearchDocumentFieldName.SPECIFICATIONS.getFieldName(), getSpecificationsFacetFilterBuilder(searchCriteria))); if(searchCriteria.getProductProperties().size() > 1) OrFilterBuilder OrPropertyFilterBuilder1 = FilterBuilders.orFilter(); for (ProductProperty productProperty : searchCriteria.getProductProperties()) AndFilterBuilder andPropertyTermFilter = FilterBuilders.andFilter(FilterBuilders.termFilter(SearchDocumentFieldName.SIZE.getFieldName(), productProperty.getSize().toLowerCase()), FilterBuilders.termFilter(SearchDocumentFieldName.COLOR.getFieldName(), productProperty.getColor().toLowerCase())); OrPropertyFilterBuilder1.add(andPropertyTermFilter); propertyFilterBuilder = FilterBuilders.andFilter(FilterBuilders.termFilter(SearchDocumentFieldName.SIZE.getFieldName(), productProperty.getSize()), FilterBuilders.termFilter(SearchDocumentFieldName.COLOR.getFieldName(), productProperty.getColor())); andFilterBuilder.add(FilterBuilders.hasChildFilter(ElasticSearchIndexConfig.COM_WEBSITE.getPropertiesDocumentType(), filteredQueryBuilder)); andFilterBuilder.add(FilterBuilders.nestedFilter(SearchDocumentFieldName.SPECIFICATIONS.getFieldName(), specificationFilterBuilder));
private SearchResponse exactSearchByName(String nameQuery) { return client.prepareSearch(esConfig.getIndexName()) .setPostFilter(FilterBuilders.termFilter("name", nameQuery.toLowerCase())) .execute() .actionGet(); }
@Override public <P extends ParaObject> List<P> findNearby(String appid, String type, String query, int radius, double lat, double lng, Pager... pager) { if (StringUtils.isBlank(type) || StringUtils.isBlank(appid)) { return Collections.emptyList(); } if (StringUtils.isBlank(query)) { query = "*"; } // find nearby Address objects QueryBuilder qb1 = QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), FilterBuilders.geoDistanceFilter("latlng").point(lat, lng). distance(radius, DistanceUnit.KILOMETERS)); SearchHits hits1 = searchQueryRaw(appid, Utils.type(Address.class), qb1, pager); if (hits1 == null) { return Collections.emptyList(); } // then find their parent objects String[] ridsarr = new String[(int) hits1.getTotalHits()]; for (int i = 0; i < hits1.getTotalHits(); i++) { Object pid = hits1.getAt(i).getSource().get(Config._PARENTID); if (pid != null) { ridsarr[i] = pid.toString(); } } QueryBuilder qb2 = QueryBuilders.filteredQuery(QueryBuilders.queryString(query), FilterBuilders.idsFilter(type).ids(ridsarr)); SearchHits hits2 = searchQueryRaw(appid, type, qb2, pager); return searchQuery(appid, hits2); }