List of usage examples for org.apache.lucene.search.spans SpanOrQuery getClauses
public SpanQuery[] getClauses()
From source file:com.o19s.solr.swan.nodes.SwanXOrOperationNode.java
License:Apache License
@Override public SpanQuery getSpanQuery(String field) { SpanOrQuery query = new SpanOrQuery(); List<SwanNode> inc;//from ww w . j a v a 2s.c om for (int x = 0; x < _nodes.size(); x++) { inc = new ArrayList<SwanNode>(); inc.addAll(_nodes); inc.remove(x); SpanOrQuery or = new SpanOrQuery(); for (SwanNode n : inc) { or.addClause(n.getSpanQuery(field)); } if (or.getClauses().length > 0) { SpanNotQuery not = new SpanNotQuery(_nodes.get(x).getSpanQuery(field), or); query.addClause(not); } } return query; }
From source file:org.apache.solr.search.TestSolrCoreParser.java
License:Apache License
public void testCustomQueryWrapping() throws IOException, ParserException { final boolean span = random().nextBoolean(); // the custom queries final String fieldName = "contents"; final String[] randomTerms = new String[] { "bumble", "honey", "solitary" }; final String randomQuery = composeChooseOneWordQueryXml(fieldName, randomTerms); final String apacheLuceneSolr = "<ApacheLuceneSolr fieldName='" + fieldName + "'/>"; // the wrapping query final String parentQuery = (span ? "SpanOr" : "BooleanQuery"); final String subQueryPrefix = (span ? "" : "<Clause occurs='must'>"); final String subQuerySuffix = (span ? "" : "</Clause>"); final String xml = "<" + parentQuery + ">" + subQueryPrefix + randomQuery + subQuerySuffix + subQueryPrefix + apacheLuceneSolr + subQuerySuffix + "</" + parentQuery + ">"; // the test/*from ww w. j a v a2 s . c om*/ final Query query = parseXmlString(xml); if (span) { assertTrue(unwrapSpanBoostQuery(query) instanceof SpanOrQuery); final SpanOrQuery soq = (SpanOrQuery) unwrapSpanBoostQuery(query); assertEquals(2, soq.getClauses().length); checkChooseOneWordQuery(span, soq.getClauses()[0], fieldName, randomTerms); checkApacheLuceneSolr(soq.getClauses()[1], fieldName); } else { assertTrue(query instanceof BooleanQuery); final BooleanQuery bq = (BooleanQuery) query; assertEquals(2, bq.clauses().size()); checkChooseOneWordQuery(span, bq.clauses().get(0).getQuery(), fieldName, randomTerms); checkApacheLuceneSolr(bq.clauses().get(1).getQuery(), fieldName); } }
From source file:org.elasticsearch.index.query.json.SimpleJsonIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQueryBuilder() throws IOException { IndexQueryParser queryParser = newQueryParser(); Query parsedQuery = queryParser.parse(spanOrQuery().clause(spanTermQuery("age", 34)) .clause(spanTermQuery("age", 35)).clause(spanTermQuery("age", 36))); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(35)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(36)))); }
From source file:org.elasticsearch.index.query.json.SimpleJsonIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQuery() throws IOException { IndexQueryParser queryParser = newQueryParser(); String query = copyToStringFromClasspath("/org/elasticsearch/index/query/json/spanOr.json"); Query parsedQuery = queryParser.parse(query); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(35)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(36)))); }
From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQueryBuilder() throws IOException { IndexQueryParserService queryParser = queryParser(); Query parsedQuery = queryParser.parse(spanOrQuery().clause(spanTermQuery("age", 34)) .clause(spanTermQuery("age", 35)).clause(spanTermQuery("age", 36))).query(); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", longToPrefixCoded(34, 0)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", longToPrefixCoded(35, 0)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", longToPrefixCoded(36, 0)))); }
From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQuery() throws IOException { IndexQueryParserService queryParser = queryParser(); String query = copyToStringFromClasspath("/org/elasticsearch/index/query/spanOr.json"); Query parsedQuery = queryParser.parse(query).query(); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", longToPrefixCoded(34, 0)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", longToPrefixCoded(35, 0)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", longToPrefixCoded(36, 0)))); }
From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQuery2() throws IOException { IndexQueryParserService queryParser = queryParser(); String query = copyToStringFromClasspath("/org/elasticsearch/index/query/spanOr2.json"); Query parsedQuery = queryParser.parse(query).query(); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", longToPrefixCoded(34, 0)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", longToPrefixCoded(35, 0)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", longToPrefixCoded(36, 0)))); }
From source file:org.elasticsearch.index.query.SpanOrQueryBuilderTests.java
License:Apache License
@Override protected void doAssertLuceneQuery(SpanOrQueryBuilder queryBuilder, Query query, QueryShardContext context) throws IOException { assertThat(query, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) query; assertThat(spanOrQuery.getClauses().length, equalTo(queryBuilder.clauses().size())); Iterator<SpanQueryBuilder> spanQueryBuilderIterator = queryBuilder.clauses().iterator(); for (SpanQuery spanQuery : spanOrQuery.getClauses()) { assertThat(spanQuery, equalTo(spanQueryBuilderIterator.next().toQuery(context))); }/*from ww w. j a v a 2 s . co m*/ }
From source file:org.elasticsearch.index.query.xcontent.SimpleIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQueryBuilder() throws IOException { IndexQueryParser queryParser = queryParser(); Query parsedQuery = queryParser.parse(spanOrQuery().clause(spanTermQuery("age", 34)) .clause(spanTermQuery("age", 35)).clause(spanTermQuery("age", 36))).query(); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(35)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(36)))); }
From source file:org.elasticsearch.index.query.xcontent.SimpleIndexQueryParserTests.java
License:Apache License
@Test public void testSpanOrQuery() throws IOException { IndexQueryParser queryParser = queryParser(); String query = copyToStringFromClasspath("/org/elasticsearch/index/query/xcontent/spanOr.json"); Query parsedQuery = queryParser.parse(query).query(); assertThat(parsedQuery, instanceOf(SpanOrQuery.class)); SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery; assertThat(spanOrQuery.getClauses().length, equalTo(3)); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(35)))); assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(36)))); }