protected FulltextSearchResults read(final SearchCriterion... searchCriterions) throws UnexpectedInputException, ParseException, NonTransientResourceException { Assert.notNull(searchCriterions); ResultsFormat resultsFormat = new ResultsFormat(new ArrayList<FieldRequest>()); FulltextSearchQuery searchQuery = new FulltextSearchQuery(amountOfReadItems, bufferSize, resultsFormat, searchCriterions); FulltextSearchResults results = fulltextIndexService.performSearch(searchQuery); amountOfReadItems += results.getSize(); return results; }
private FulltextSearchQuery prepareSearchQuery(final String id, final String type) { final List<FieldRequest> fieldRequests = new ArrayList<FieldRequest>(); fieldRequests.add(new FieldRequest(getSortField(FIELD_NAME), false)); fieldRequests.add(new FieldRequest(FIELD_EXID, false)); String schema = transform.get(type.toLowerCase()); FieldCriterion criterion = new FieldCriterion(FIELD_BASE + schema, IdentifierFormatter.simplify(id), SearchOperator.AND); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequests); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, 10, resultsFormat, criterion); return searchQuery; }
private FulltextSearchQuery prepareSearchQuery(final Map<String, String> params, final int first, final int pageSize) { final List<FieldRequest> fieldRequests = new ArrayList<FieldRequest>(); fieldRequests.add(new FieldRequest(IndexSchemaFactoryUtils.getSortField(FIELD_NAME), false)); fieldRequests.add(new FieldRequest(FIELD_VISIBILITY, false)); fieldRequests.add(new FieldRequest(FIELD_TYPE, false)); fieldRequests.add(new FieldRequest(FIELD_EXID, false)); fieldRequests.add(new FieldRequest(FIELD_DATE+ SEP + "creationTimestamp", false)); List<FieldCriterion> criterions = new LinkedList<>(); for (Entry<String, String> entry : params.entrySet()) { criterions.add(new FieldCriterion(entry.getKey(), entry.getValue(), SearchOperator.AND)); } final ResultsFormat resultsFormat = new ResultsFormat(fieldRequests); if(criterions.isEmpty()){ criterions.add(new FieldCriterion("*", "*")); } final FulltextSearchQuery searchQuery = new FulltextSearchQuery(first, pageSize, resultsFormat, criterions.toArray(new FieldCriterion[criterions.size()])); return searchQuery; }
private FulltextSearchQuery prepareSearchQuery(final Map<String, String> params, final int first, final int pageSize) { final List<FieldRequest> fieldRequests = new ArrayList<FieldRequest>(); fieldRequests.add(new FieldRequest(IndexSchemaFactoryUtils.getSortField(FIELD_NAME), false)); fieldRequests.add(new FieldRequest(FIELD_VISIBILITY, false)); fieldRequests.add(new FieldRequest(FIELD_TYPE, false)); fieldRequests.add(new FieldRequest(FIELD_EXID, false)); fieldRequests.add(new FieldRequest(FIELD_DATE+ SEP + "creationTimestamp", false)); List<FieldCriterion> criterions = new LinkedList<>(); for (Entry<String, String> entry : params.entrySet()) { criterions.add(new FieldCriterion(entry.getKey(), entry.getValue(), SearchOperator.AND)); } final ResultsFormat resultsFormat = new ResultsFormat(fieldRequests); if(criterions.isEmpty()){ criterions.add(new FieldCriterion("*", "*")); } final FulltextSearchQuery searchQuery = new FulltextSearchQuery(first, pageSize, resultsFormat, criterions.toArray(new FieldCriterion[criterions.size()])); return searchQuery; }
private FulltextSearchQuery createIndexQuery(final String observedUserId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_EXID)); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_CREATED_BY_USER_TIMESTAMP)); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_USER_UID_CREATOR, observedUserId, SearchOperator.AND)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_CREATED_BY_USER_TIMESTAMP, fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(PublicationIndexFieldConstants.FIELD_CREATED_BY_USER_TIMESTAMP)); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, getAggregationNumberLimit()+1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
private FulltextSearchQuery createIndexQuery(final String publicationId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_USER)); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_TIMESTAMP)); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_EXID, publicationId, SearchOperator.AND)); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_USER, userId, SearchOperator.NOT)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_TIMESTAMP, fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_TIMESTAMP)); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, 1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
private FulltextSearchQuery createIndexQuery(final String journalId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_EXID)); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_DATE + SEP + "creationTimestamp")); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_ANCESTOR_ID + SEP + HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_JOURNAL, journalId, SearchOperator.AND)); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_USER_UID_CREATOR, userId, SearchOperator.NOT)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_DATE + SEP + "creationTimestamp", fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(PublicationIndexFieldConstants.FIELD_DATE + SEP + "creationTimestamp")); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, getAggregationNumberLimit()+1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
private FulltextSearchQuery prepareSearchQuery(final List<SearchCriterion> fieldCriterionList) { final SearchCriterion fieldRangeCriterion = new FieldRangeCriterion(FIELD_DESCRIPTION, ALL, ALL); fieldRangeCriterion.setOperator(SearchOperator.AND); fieldCriterionList.add(fieldRangeCriterion); final List<Order> orderList = new ArrayList<Order>(); orderList.add(Order.relevanceOrder()); final ResultsFormat resultsFormat = new ResultsFormat(new FieldRequest(FIELD_EXID, true)); return new FulltextSearchQuery(0, searchedElementSize, resultsFormat, orderList, fieldCriterionList); }
private FulltextSearchQuery prepareSearchQuery(final String id, final int first, final int pageSize, final String mode) { final List<FieldRequest> fieldRequests = new ArrayList<FieldRequest>(); fieldRequests.add(new FieldRequest(IndexSchemaFactoryUtils.getSortField(FIELD_NAME), false)); fieldRequests.add(new FieldRequest(FIELD_COLLECTION_ID, false)); fieldRequests.add(new FieldRequest(FIELD_CONTENT_ID, false)); fieldRequests.add(new FieldRequest(FIELD_TYPE, false)); final FieldCriterion criterion; if (MODE_IN_COLLECTION.equals(mode)) { criterion = new FieldCriterion(FIELD_CONTENT_ID, id, SearchOperator.AND); } else { criterion = new FieldCriterion(FIELD_COLLECTION_ID, id, SearchOperator.AND); } final ResultsFormat resultsFormat = new ResultsFormat(fieldRequests); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(first, pageSize, resultsFormat, criterion); return searchQuery; }
private FulltextSearchQuery createIndexQuery(final String collectionId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_CONTENT_ID)); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_TYPE)); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER)); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER_TIMESTAMP)); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(CollectionContentIndexFieldConstants.FIELD_COLLECTION_ID, collectionId, SearchOperator.AND)); fieldCriterionList.add(new FieldCriterion(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER, userId, SearchOperator.NOT)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER_TIMESTAMP, fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER_TIMESTAMP)); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, getAggregationNumberLimit()+1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
@Override public LuceneQueryContainer build(SearchRequest request) { AdvancedSearchRequest simpleRequest = (AdvancedSearchRequest) request; SearchScheme scheme = searchSchemes.get(request.getSearchScheme()); if (scheme == null) { throw new IllegalStateException("Scheme " + request.getSearchScheme() + " not found"); } @SuppressWarnings("deprecation") FulltextSearchQuery searchQuery = getSearchCriterions(scheme, true, simpleRequest, new FulltextSearchQuery()); applyOrder(simpleRequest, searchQuery, scheme); applyParameters(simpleRequest, searchQuery); List<String> filters = new LinkedList<String>(); log(searchQuery); List<FieldRequest> fieldRequests = new LinkedList<FieldRequest>(); for (Map.Entry<String, Boolean> requestedField : scheme.getRequestedFields().entrySet()) { fieldRequests.add(new FieldRequest(requestedField.getKey(), requestedField.getValue())); } ResultsFormat resultsFormat = new ResultsFormat(fieldRequests); searchQuery.setFormat(resultsFormat); return new LuceneQueryContainer(searchQuery, filters); }
private void tryFacet() { int batchSize = 1; ResultsFormat resultsFormat = new ResultsFormat(new FieldRequest(pl.edu.icm.synat.logic.index.publication.CollectionIndexFieldConstants.FIELD_EXID, true)); FulltextSearchQuery searchQuery = null; searchQuery = new FulltextSearchQuery(0, batchSize, resultsFormat, new FieldCriterion("*", "*", SearchOperator.AND)); Facet facet = new Facet(); facet.addFieldFacet(PublicationIndexFieldConstants.FIELD_TYPE); searchQuery.setFacet(facet); FulltextSearchResults searchResults = indexService.performSearch(searchQuery); FieldFacetResult facetResult = searchResults.getFacetResult().getFieldFacetResult(PublicationIndexFieldConstants.FIELD_TYPE); Set<Entry<String,Long>> entrySet = facetResult.getValues().entrySet(); for (Entry<String, Long> entry : entrySet) { System.out.println("["+entry.getKey()+"]="+entry.getValue()); } }
private void tryIndex() { int batchSize = 1000; ResultsFormat resultsFormat = new ResultsFormat(new FieldRequest(pl.edu.icm.synat.logic.index.publication.CollectionIndexFieldConstants.FIELD_EXID, true)); FulltextSearchQuery searchQuery = null; searchQuery = new FulltextSearchQuery(0, batchSize, resultsFormat, new FieldCriterion("level", "bwmeta1.level.hierarchy_Journal_Article", SearchOperator.AND)); List<FulltextSearchResult> results = indexService.performSearch(searchQuery).getResults(); for (FulltextSearchResult result : results) { System.out.println("docId: " + result.getDocId()); } }
public FulltextIterator(FulltextIndexService service, ResultsFormat format, List<Order> order, List<SearchCriterion> criteria, String cursorMark, int pageSize) { this.service = service; query = new FulltextSearchQuery(0, pageSize, format, order, Arrays.asList(new FieldCriterion("*", "*"))); query.setCursorMark(cursorMark); query.setUseCursor(true); for(SearchCriterion criterion:criteria){ query.addFilterCriterion(criterion); } FulltextSearchResults results = prepareNextResults(); updateContext(results); totalCount = results.getCount(); } public FulltextIterator(FulltextIndexService service, ResultsFormat format, Order order, List<SearchCriterion> criteria, String cursorMark, int pageSize) {
@Override @Cacheable(value = CACHE_NAME) public List<String> preapareDataSets() { int batchSize = 1; ResultsFormat resultsFormat = new ResultsFormat( new FieldRequest(CollectionIndexFieldConstants.FIELD_EXID, true)); FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, batchSize, resultsFormat , new FieldCriterion(ALL, ALL, SearchOperator.AND)); Facet facet = new Facet(); facet.addFieldFacet(PublicationIndexFieldConstants.FIELD_DATASET); searchQuery.setFacet(facet); return portalIndexSearchService.performSearch(searchQuery, ApplicationConstants.DEFAULT_DATASET); }
@Override public SearchResults search(SearchQuery query) { preprocessCriteria(query.getCriteria()); query.addTrueCritIfEmpty(); FulltextSearchQuery q = new FulltextSearchQuery(query.getFirst(), query.getLimit(), null, query.getOrder(), criteriaArray(query.getCriteria())); populateFacets(q, query); logger.info("running fulltextSearchQuery : "+ q); FulltextSearchResults res = indexService.performSearch(q); return new SearchResults(res); }
public List<PublicationMetadata> matchMetadata(SearchCriterion criterion, ResultMatcher[] matchers, PublicationMetadata template) { if (criterion == null) return Collections.emptyList(); ResultsFormat format = new ResultsFormat(new FieldRequest[] { new FieldRequest(MetadataIndexConstants.F_AUTHOR_NORM), new FieldRequest(MetadataIndexConstants.F_JOURNAL_TITLE), new FieldRequest(MetadataIndexConstants.F_NUMBER), new FieldRequest(MetadataIndexConstants.F_PAGE_FROM), new FieldRequest(MetadataIndexConstants.F_TITLE), new FieldRequest(MetadataIndexConstants.F_VOLUME), new FieldRequest(MetadataIndexConstants.F_YEAR) }); Set<PublicationMetadata> hits = new HashSet<PublicationMetadata>(); FulltextSearchQuery query = new FulltextSearchQuery(0, 100, format, criterion); FulltextSearchResults ci = fulltextIndex.performSearch(query); for (FulltextSearchResult result : ci.getResults()) { if (itemMatches(result, template, matchers)) { hits.add(documentBuilder.restore(result)); } } return new ArrayList<PublicationMetadata>(hits); }
public List<PublicationMetadata> matchIds(PublicationMetadata template) { List<PublicationId> ids = template.getIds(); if (ids == null) { ids = Collections.emptyList(); } if (ids.isEmpty()) return Collections.emptyList(); ResultsFormat format = new ResultsFormat(new FieldRequest[] { new FieldRequest(MetadataIndexConstants.F_AUTHOR_NORM), new FieldRequest(MetadataIndexConstants.F_JOURNAL_TITLE), new FieldRequest(MetadataIndexConstants.F_NUMBER), new FieldRequest(MetadataIndexConstants.F_PAGE_FROM), new FieldRequest(MetadataIndexConstants.F_TITLE), new FieldRequest(MetadataIndexConstants.F_VOLUME), new FieldRequest(MetadataIndexConstants.F_YEAR) }); Set<PublicationMetadata> hits = new HashSet<PublicationMetadata>(); BooleanCriterion criterion = new BooleanCriterion(); criterion.setOperator(SearchOperator.OR); for (PublicationId id : ids) { criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_IDENTIFIER, idToString(id)), SearchOperator.OR); } FulltextSearchQuery query = new FulltextSearchQuery(0, 100, format, criterion); FulltextSearchResults ci = fulltextIndex.performSearch(query); for (FulltextSearchResult result : ci.getResults()) { PublicationMetadata metadata = documentBuilder.restore(result); hits.add(metadata); } return new ArrayList<PublicationMetadata>(hits); }
private FulltextSearchResults getFacet(String facetFieldName, SearchCriterion criterion, SuggestionsQuery query) { ResultsFormat results = new ResultsFormat(new FieldRequest(facetFieldName)); FulltextSearchQuery indexQuery = new FulltextSearchQuery(query.getPageNo() * query.getPageSize(), query.getPageSize(), results, criterion); Facet facet = new Facet(); facet.addFieldFacet(facetFieldName); FacetParameters parameters = new FacetParameters(); parameters.setMinCount(1); facet.setParameters(parameters); indexQuery.setFacet(facet); FulltextSearchResults result = peopleIndex.performSearch(indexQuery); return result; }
ResultsFormat format = transformResultsFormat(fromObject.getResultsFormat()); FulltextSearchQuery query = new FulltextSearchQuery(first, size, format);