List of usage examples for org.springframework.data.solr.core.query Criteria where
public static Criteria where(Field field)
From source file:org.opengeoportal.harvester.api.client.solr.SolrSearchParams.java
/** * Transform the record in {@link SolrQuery} executable by an * {@link org.apache.solr.client.solrj.impl.HttpSolrServer}. * /*from w ww . j av a 2s . co m*/ * @return the {@link SolrQuery} built with the data page this. */ public SolrQuery toSolrQuery() { SolrQuery solrQuery = new SolrQuery(); if (StringUtils.isNotBlank(customSolrQuery)) { solrQuery.setQuery(customSolrQuery); } else { solrQuery.setQuery("*:*"); // data repositories if (dataRepositories != null && dataRepositories.size() > 0) { Criteria institutionCriteria = null; for (String institution : dataRepositories) { if (institutionCriteria == null) { institutionCriteria = new Criteria(SolrRecord.INSTITUTION).is(institution); } else { institutionCriteria = institutionCriteria .or(new Criteria(SolrRecord.INSTITUTION).is(institution)); } } SimpleQuery query = new SimpleQuery(institutionCriteria); DefaultQueryParser parser = new DefaultQueryParser(); String queryString = parser.getQueryString(query); solrQuery.addFilterQuery(queryString); } else { solrQuery.addFilterQuery(SolrRecord.INSTITUTION + ":*"); } // theme keywords if (StringUtils.isNotBlank(themeKeyword)) { solrQuery.addFilterQuery(SolrRecord.THEME_KEYWORDS + ":" + themeKeyword); solrQuery.add(PF, SolrRecord.THEME_KEYWORDS + ":'" + themeKeyword + "'^9.0"); solrQuery.add(PF, SolrRecord.LAYER_DISPLAY_NAME + ":'" + themeKeyword + "'^9.0"); } if (StringUtils.isNotBlank(placeKeyword)) { solrQuery.addFilterQuery(SolrRecord.PLACE_KEYWORDS + ":" + placeKeyword); solrQuery.add(PF, SolrRecord.PLACE_KEYWORDS + ":'" + placeKeyword + "'^9.0"); } if (StringUtils.isNotBlank(topicCategory)) { solrQuery.addFilterQuery(SolrRecord.ISO_TOPIC_CATEGORY + ":" + this.topicCategory); } if (dateFrom != null || dateTo != null) { Criteria contentDateCriteria = Criteria.where(SolrRecord.CONTENT_DATE).between(dateFrom, dateTo); SimpleQuery query = new SimpleQuery(contentDateCriteria); DefaultQueryParser parser = new DefaultQueryParser(); String queryString = parser.getQueryString(query); solrQuery.addFilterQuery(queryString); } if (StringUtils.isNotBlank(originator)) { String originatorCriteria = splitAndConcatenateUsingOperator(Operator.AND, SolrRecord.ORIGINATOR, originator); solrQuery.addFilterQuery(originatorCriteria); solrQuery.add(PF, SolrRecord.ORIGINATOR + ":" + originator); } if (dataTypes != null && dataTypes.size() > 0) { StringBuilder concatenatedType = new StringBuilder(); for (DataType dType : dataTypes) { concatenatedType.append(dType.toString().replace(" ", "+")).append(" "); } String dataTypeCriteria = splitAndConcatenateUsingOperator(Operator.OR, SolrRecord.DATA_TYPE, concatenatedType.toString()); solrQuery.add("fq", dataTypeCriteria); } if (excludeRestrictedData) { solrQuery.addFilterQuery(SolrRecord.ACCESS + ":" + AccessLevel.Public); } if (fromSolrTimestamp != null || toSolrTimestamp != null) { Criteria solrTimestampCriteria = Criteria.where(SolrRecord.TIMESTAMP).between(fromSolrTimestamp, toSolrTimestamp); SimpleQuery query = new SimpleQuery(solrTimestampCriteria); DefaultQueryParser parser = new DefaultQueryParser(); String queryString = parser.getQueryString(query); solrQuery.addFilterQuery(queryString); } // Add bbox filter only if user has not specified a custom solr // query. buildBoundigBoxQuery(solrQuery); String synonymsFilter = generateSynonymsQuery(); if (StringUtils.isNotBlank(synonymsFilter)) { solrQuery.addFilterQuery(synonymsFilter); } } solrQuery.setRows(pageSize); solrQuery.setStart(page * pageSize); solrQuery.addSort(SortClause.desc("score")); return solrQuery; }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-105//w w w . j a v a 2s.c om */ @Test public void testNestedOrPartWithAnd() { Criteria criteria = Criteria.where("field_1").is("foo") .and(Criteria.where("field_2").is("bar").or("field_3").is("roo"))// .or(Criteria.where("field_4").is("spring").and("field_5").is("data")); Assert.assertEquals("field_1:foo AND (field_2:bar OR field_3:roo) OR (field_4:spring AND field_5:data)", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-105/* w w w . j a v a2 s. c o m*/ */ @Test public void testNestedOrPartWithAndSomeOtherThings() { Criteria criteria = Criteria.where("field_1").is("foo").is("bar") .and(Criteria.where("field_2").is("bar").is("lala").or("field_3").is("roo")) .or(Criteria.where("field_4").is("spring").and("field_5").is("data")); Assert.assertEquals( "field_1:(foo bar) AND (field_2:(bar lala) OR field_3:roo) OR (field_4:spring AND field_5:data)", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-105/* w w w . j a v a 2s .co m*/ */ @Test public void testMultipleAnd() { Criteria criteria = Criteria.where("field_1").is("foo").and("field_2").is("bar").and("field_3").is("roo"); Assert.assertEquals("field_1:foo AND field_2:bar AND field_3:roo", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-105/* w ww . j av a 2 s. co m*/ */ @Test public void testMultipleOr() { Criteria criteria = Criteria.where("field_1").is("foo").or("field_2").is("bar").or("field_3").is("roo"); Assert.assertEquals("field_1:foo OR field_2:bar OR field_3:roo", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-105//from w w w . j a v a 2s . c o m */ @Test public void testEmptyCriteriaShouldBeDefaultedToNotNUll() { Criteria criteria = Criteria.where("field_1").is("foo").and("field_2").or("field_3"); Assert.assertEquals("field_1:foo AND field_2:[* TO *] OR field_3:[* TO *]", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-105/*from w ww . j a v a 2 s . c om*/ */ @Test public void testDeepNesting() { Criteria criteria = Criteria.where("field_1").is("foo").and(Criteria.where("field_2").is("bar") .and("field_3").is("roo")// .and(Criteria.where("field_4").is("spring").and("field_5").is("data").or("field_6").is("solr"))); Assert.assertEquals( "field_1:foo AND (field_2:bar AND field_3:roo AND (field_4:spring AND field_5:data OR field_6:solr))", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-196/* w w w.j a va 2 s . c o m*/ */ @Test public void connectShouldAllowConcatinationOfCriteriaWithAndPreservingDesiredBracketing() { Criteria part1 = Criteria.where("z").is("roo"); Criteria part2 = Criteria.where("x").is("foo").or("y").is("bar"); Criteria criteria = part1.connect().and(part2); Assert.assertEquals("z:roo AND (x:foo OR y:bar)", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-196//from w ww . j av a 2 s. c o m */ @Test public void connectShouldAllowConcatinationOfCriteriaWithAndPreservingDesiredBracketingReverse() { Criteria part1 = Criteria.where("z").is("roo"); Criteria part2 = Criteria.where("x").is("foo").or("y").is("bar"); Criteria criteria = part2.connect().and(part1); Assert.assertEquals("(x:foo OR y:bar) AND z:roo", queryParser.createQueryStringFromNode(criteria)); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
/** * @see DATASOLR-196/* w ww. j a v a2 s .c o m*/ */ @Test public void connectShouldAllowConcatinationOfCriteriaWithOrPreservingDesiredBracketing() { Criteria part1 = Criteria.where("z").is("roo"); Criteria part2 = Criteria.where("x").is("foo").or("y").is("bar"); Criteria criteria = part1.connect().or(part2); Assert.assertEquals("z:roo OR (x:foo OR y:bar)", queryParser.createQueryStringFromNode(criteria)); }