private FieldCriterion fieldCriterion(String fieldName, String query) { return new FieldCriterion(fieldName, query.trim(), false); }
/** * synat index layer throws exception if query is empty */ public void addTrueCritIfEmpty() { if (criteria.isEmpty()) { //FieldCriterion crit = new FieldCriterion(FieldNames.DTYPE, "*", true); // ignore JournalIssue entities criteria.add(new FieldCriterion(FieldNames.DTYPE, Journal.class.getSimpleName(), SearchOperator.OR)); criteria.add(new FieldCriterion(FieldNames.DTYPE, Article.class.getSimpleName(), SearchOperator.OR)); } }
@Override public FulltextSearchResult read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException { return readNextResult(new FieldCriterion("*", "*", SearchOperator.AND)); } }
private List<SearchCriterion> prepareConferenceFieldCriterionList(YElement element) { final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(new StringBuilder(FIELD_CONFERENCE_EVENT_ID) .toString(), element.getId(), SearchOperator.AND)); return fieldCriterionList; }
public String resolveJournalId(final String journalName) { if (StringUtils.isBlank(journalName)) { return null; } return indexSearchUtil.resolveOneId(new FieldCriterion(FIELD_NAME, journalName)); }
private List<SearchCriterion> prepareFieldCriterionList(YElement element, String level) { final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(new StringBuilder(FIELD_ANCESTOR_ID) .append(SEP).append(level).toString(), element.getId(), SearchOperator.AND)); return fieldCriterionList; }
private SearchCriterion domainQueryBuilder(Set<String> emailDomains) { if (emailDomains.size() == 1) { return new FieldCriterion(PeopleIndexFieldConstants.FIELD_EMAIL_DOMAIN, emailDomains.iterator().next()); } else { BooleanCriterion crit = new BooleanCriterion(); crit.setOperator(SearchOperator.OR); for (String domain : emailDomains) { crit.addCriterion(new FieldCriterion(PeopleIndexFieldConstants.FIELD_EMAIL_DOMAIN, domain)); } return crit; } }
@Override protected FieldCriterion mergeConditions(List<FieldCriterion> criterions) { if (CollectionUtils.isEmpty(criterions)) { return null; } StringBuilder builder = new StringBuilder(); for (FieldCriterion criterion : criterions) { builder.append(criterion.getValue()); builder.append(" "); } return new FieldCriterion(criterions.get(0).getField(), builder.toString().trim(), criterions.get(0).getOperator()); }
@Override public Integer read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException { Integer resultsAmount = null; if (!amountAlreadyReturned) { resultsAmount = read(new FieldCriterion(fieldCriterionKey, fieldCriterionValue, SearchOperator.AND)) .getCount(); amountAlreadyReturned = true; } return resultsAmount; } }
@Override public FulltextSearchResult read() throws UnexpectedInputException, ParseException, NonTransientResourceException { return readNextResult(new FieldCriterion(CollectionIndexFieldConstants.FIELD_TYPE, CollectionTypes.USERCOLLECTION.getTypeName(), SearchOperator.AND)); } }
@Override public List<SearchCriterion> apply(Record record) { String id = record.getIdentifier().getUid(); String level = StoreUtils.getTag(RepositoryStoreConstants.TAG_NAME_HIERARHY_LEVEL, record.getTags()); if (level == null) { throw new GeneralBusinessException("Wrong input record: " + id + " no hierarchy level set "); } String hierarchy = Splitter.on("=").splitToList(level).get(1); List<SearchCriterion> criteria = Arrays .asList(new FieldCriterion(PublicationIndexFieldConstants.FIELD_ANCESTOR_ID + IndexFieldConstants.SEP + hierarchy, id)); return criteria; }
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 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 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); }
private BooleanCriterion expandMultipleField(FieldCriterion criterion, Set<String> multipleExpandFieldNames) { BooleanCriterion fieldCriterion = new BooleanCriterion(); String value = criterion.getValue(); for (String field : multipleExpandFieldNames) { fieldCriterion.addCriterion(new FieldCriterion(field, value), (criterion.getOperator() == SearchOperator.NOT) ? SearchOperator.NOT :SearchOperator.OR); } return fieldCriterion; }
protected SearchCriterion buildAuthorYearCriterion(PublicationMetadata template) { if (template.getYear() == null || template.getAuthors() == null || template.getAuthors().isEmpty()) return null; BooleanCriterion criterion = new BooleanCriterion(); criterion.setOperator(SearchOperator.AND); criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_YEAR, template.getYear())); for (PublicationAuthor author : template.getAuthors()) if (author.getSurname() != null) { criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_AUTHOR_SURNAME, author.getSurname())); } return criterion; }
protected SearchCriterion buildAuthorJournalCriterion(PublicationMetadata template) { if (template.getYear() == null || template.getJournal() == null || template.getAuthors() == null || template.getAuthors().isEmpty()) return null; BooleanCriterion criterion = new BooleanCriterion(); criterion.setOperator(SearchOperator.AND); criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_YEAR, template.getYear())); criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_JOURNAL_HASH, abbreviationDirectory.toAcronym(template.getJournal()))); for (PublicationAuthor author : template.getAuthors()) if (author.getSurname() != null) { criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_AUTHOR_SURNAME, author.getSurname())); } return criterion; }
private SearchCriterion fieldConditionToFieldCriterion(FieldCondition condition, SearchOperator parentOperator) { SearchCriterion result = null; if (AdvancedSearchRequest.OPERATOR_EQUALS.equals(condition.getOperator())) { result = new FieldCriterion(condition.getFieldName(), condition.getValue(), parentOperator); } else if (AdvancedSearchRequest.OPERATOR_NOT_EQUALS.equals(condition.getOperator())) { result = new FieldCriterion(condition.getFieldName(), condition.getValue(), SearchOperator.NOT); } else if (AdvancedSearchRequest.OPERATOR_LESS_OR_EQUAL.equals(condition.getOperator())) { result = new FieldRangeCriterion(condition.getFieldName(), null, condition.getValue()); result.setOperator(parentOperator); } else if (AdvancedSearchRequest.OPERATOR_GREATER_OR_EQUAL.equals(condition.getOperator())) { result = new FieldRangeCriterion(condition.getFieldName(), condition.getValue(), null); result.setOperator(parentOperator); } return result; }