List of usage examples for org.apache.lucene.queries CommonTermsQuery CommonTermsQuery
public CommonTermsQuery(Occur highFreqOccur, Occur lowFreqOccur, float maxTermFrequency)
From source file:org.elasticsearch.index.query.PercolateQueryTests.java
License:Apache License
public void testDuelSpecificQueries() throws Exception { CommonTermsQuery commonTermsQuery = new CommonTermsQuery(BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD, 128); commonTermsQuery.add(new Term("field", "quick")); commonTermsQuery.add(new Term("field", "brown")); commonTermsQuery.add(new Term("field", "fox")); addPercolatorQuery("_id1", commonTermsQuery); BlendedTermQuery blendedTermQuery = BlendedTermQuery.booleanBlendedQuery( new Term[] { new Term("field", "quick"), new Term("field", "brown"), new Term("field", "fox") }, false);/* w w w . j ava 2 s . c om*/ addPercolatorQuery("_id2", blendedTermQuery); SpanNearQuery spanNearQuery = new SpanNearQuery.Builder("field", true) .addClause(new SpanTermQuery(new Term("field", "quick"))) .addClause(new SpanTermQuery(new Term("field", "brown"))) .addClause(new SpanTermQuery(new Term("field", "fox"))).build(); addPercolatorQuery("_id3", spanNearQuery); SpanNearQuery spanNearQuery2 = new SpanNearQuery.Builder("field", true) .addClause(new SpanTermQuery(new Term("field", "the"))) .addClause(new SpanTermQuery(new Term("field", "lazy"))) .addClause(new SpanTermQuery(new Term("field", "doc"))).build(); SpanOrQuery spanOrQuery = new SpanOrQuery(spanNearQuery, spanNearQuery2); addPercolatorQuery("_id4", spanOrQuery); SpanNotQuery spanNotQuery = new SpanNotQuery(spanNearQuery, spanNearQuery); addPercolatorQuery("_id5", spanNotQuery); indexWriter.close(); directoryReader = DirectoryReader.open(directory); IndexSearcher shardSearcher = newSearcher(directoryReader); MemoryIndex memoryIndex = new MemoryIndex(); memoryIndex.addField("field", "the quick brown fox jumps over the lazy dog", new WhitespaceAnalyzer()); duelRun(memoryIndex, shardSearcher); }
From source file:org.elasticsearch.percolator.CandidateQueryTests.java
License:Apache License
public void testDuelSpecificQueries() throws Exception { List<ParseContext.Document> documents = new ArrayList<>(); CommonTermsQuery commonTermsQuery = new CommonTermsQuery(BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD, 128); commonTermsQuery.add(new Term("field", "quick")); commonTermsQuery.add(new Term("field", "brown")); commonTermsQuery.add(new Term("field", "fox")); addQuery(commonTermsQuery, documents); BlendedTermQuery blendedTermQuery = BlendedTermQuery.booleanBlendedQuery( new Term[] { new Term("field", "quick"), new Term("field", "brown"), new Term("field", "fox") }, false);/* www . j a v a 2 s . c o m*/ addQuery(blendedTermQuery, documents); SpanNearQuery spanNearQuery = new SpanNearQuery.Builder("field", true) .addClause(new SpanTermQuery(new Term("field", "quick"))) .addClause(new SpanTermQuery(new Term("field", "brown"))) .addClause(new SpanTermQuery(new Term("field", "fox"))).build(); addQuery(spanNearQuery, documents); SpanNearQuery spanNearQuery2 = new SpanNearQuery.Builder("field", true) .addClause(new SpanTermQuery(new Term("field", "the"))) .addClause(new SpanTermQuery(new Term("field", "lazy"))) .addClause(new SpanTermQuery(new Term("field", "doc"))).build(); SpanOrQuery spanOrQuery = new SpanOrQuery(spanNearQuery, spanNearQuery2); addQuery(spanOrQuery, documents); SpanNotQuery spanNotQuery = new SpanNotQuery(spanNearQuery, spanNearQuery); addQuery(spanNotQuery, documents); long lowerLong = randomIntBetween(0, 256); long upperLong = lowerLong + randomIntBetween(0, 32); addQuery(LongPoint.newRangeQuery("long_field", lowerLong, upperLong), documents); indexWriter.addDocuments(documents); indexWriter.close(); directoryReader = DirectoryReader.open(directory); IndexSearcher shardSearcher = newSearcher(directoryReader); // Disable query cache, because ControlQuery cannot be cached... shardSearcher.setQueryCache(null); Document document = new Document(); document.add(new TextField("field", "the quick brown fox jumps over the lazy dog", Field.Store.NO)); long randomLong = randomIntBetween((int) lowerLong, (int) upperLong); document.add(new LongPoint("long_field", randomLong)); MemoryIndex memoryIndex = MemoryIndex.fromDocument(document, new WhitespaceAnalyzer()); duelRun(queryStore, memoryIndex, shardSearcher); }
From source file:org.elasticsearch.percolator.ExtractQueryTermsServiceTests.java
License:Apache License
public void testExtractQueryMetadata_commonTermsQuery() { CommonTermsQuery commonTermsQuery = new CommonTermsQuery(BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD, 100); commonTermsQuery.add(new Term("_field", "_term1")); commonTermsQuery.add(new Term("_field", "_term2")); Result result = extractQueryTerms(commonTermsQuery); assertThat(result.verified, is(false)); List<Term> terms = new ArrayList<>(result.terms); Collections.sort(terms);/*from www .j av a 2s. co m*/ assertThat(terms.size(), equalTo(2)); assertThat(terms.get(0).field(), equalTo("_field")); assertThat(terms.get(0).text(), equalTo("_term1")); assertThat(terms.get(1).field(), equalTo("_field")); assertThat(terms.get(1).text(), equalTo("_term2")); }
From source file:org.elasticsearch.percolator.QueryAnalyzerTests.java
License:Apache License
public void testExtractQueryMetadata_commonTermsQuery() { CommonTermsQuery commonTermsQuery = new CommonTermsQuery(BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD, 100); commonTermsQuery.add(new Term("_field", "_term1")); commonTermsQuery.add(new Term("_field", "_term2")); Result result = analyze(commonTermsQuery); assertThat(result.verified, is(false)); List<Term> terms = new ArrayList<>(result.terms); Collections.sort(terms);// www . jav a 2 s . co m assertThat(terms.size(), equalTo(2)); assertThat(terms.get(0).field(), equalTo("_field")); assertThat(terms.get(0).text(), equalTo("_term1")); assertThat(terms.get(1).field(), equalTo("_field")); assertThat(terms.get(1).text(), equalTo("_term2")); }
From source file:org.meresco.lucene.Lucene.java
License:Open Source License
public LuceneResponse similarDocuments(String identifier) throws Throwable { SearcherAndTaxonomy reference = data.getManager().acquire(); try {/*from w ww. jav a 2s . com*/ Query idQuery = new TermQuery(new Term(ID_FIELD, identifier)); TopDocs topDocs = reference.searcher.search(idQuery, 1); if (topDocs.totalHits == 0) return new LuceneResponse(0); int docId = topDocs.scoreDocs[0].doc; IndexReader reader = reference.searcher.getIndexReader(); CommonTermsQuery commonQuery = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, 0.1f); Fields termVectors = reader.getTermVectors(docId); if (termVectors == null) return new LuceneResponse(0); for (String field : termVectors) { TermsEnum iterator = termVectors.terms(field).iterator(null); BytesRef b; while ((b = iterator.next()) != null) { Term term = new Term(field, b.utf8ToString()); commonQuery.add(term); } } BooleanQuery query = new BooleanQuery(); query.add(idQuery, Occur.MUST_NOT); query.add(commonQuery, Occur.MUST); return executeQuery(query); } finally { data.getManager().release(reference); } }