ReadOnlyIndexPartition( File partitionFolder, Directory directory ) throws IOException { super( partitionFolder, directory ); this.searcherManager = new SearcherManager( directory, new SearcherFactory() ); }
public PartitionSearcher( ReferenceManager<IndexSearcher> referenceManager ) throws IOException { this.referenceManager = referenceManager; this.indexSearcher = referenceManager.acquire(); this.indexSearcher.setQueryCache( null ); }
/** * {@inheritDoc} */ @Override public void maybeRefreshBlocking() throws IOException { searcherManager.maybeRefreshBlocking(); }
private Query includeOrphans( Query query ) { if ( orphans == null ) { return query; } return new BooleanQuery.Builder() .add( injectOrphans( query ), Occur.SHOULD ) .add( new TermQuery( new Term( ORPHANS_KEY, ORPHANS_VALUE ) ), Occur.SHOULD ) .build(); }
protected Query notIn(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { BooleanQuery bq = new BooleanQuery(); bq.add(new BooleanClause(in(operation, metadata, false), Occur.MUST_NOT)); bq.add(new BooleanClause(new MatchAllDocsQuery(), Occur.MUST)); return bq; }
public static List<Long> getAllNodes( Directory directory, Value propertyValue ) throws IOException { try ( SearcherManager manager = new SearcherManager( directory, new SearcherFactory() ) ) { IndexSearcher searcher = manager.acquire(); Query query = LuceneDocumentStructure.newSeekQuery( propertyValue ); AllNodesCollector collector = new AllNodesCollector(); searcher.search( query, collector ); return collector.nodeIds; } }
@Test void shouldBuildQueryRepresentingBoolProperty() { // given BooleanQuery booleanQuery = (BooleanQuery) newSeekQuery( true ); ConstantScoreQuery constantScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 0 ).getQuery(); TermQuery query = (TermQuery) constantScoreQuery.getQuery(); // then assertEquals( "true", query.getTerm().text() ); }
@SuppressWarnings( "unchecked" ) @Test void shouldBuildQueryRepresentingNumberProperty() { // given BooleanQuery booleanQuery = (BooleanQuery) newSeekQuery( 12 ); ConstantScoreQuery constantScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 0 ).getQuery(); NumericRangeQuery<Double> query = (NumericRangeQuery<Double>) constantScoreQuery.getQuery(); // then assertEquals( 12.0, query.getMin(), 0.001 ); assertEquals( 12.0, query.getMax(),0.001 ); }
private QueryContext sort( QueryContext query, boolean reversed ) { return query.sort( new Sort( new SortedNumericSortField( FIELD, SortField.Type.LONG, reversed ) ) ); }
public static MatchAllDocsQuery newScanQuery() { return new MatchAllDocsQuery(); }
@Override Query encodeQuery( Value value, int propertyNumber ) { Double doubleValue = Values.coerceToDouble(value); return new ConstantScoreQuery( NumericRangeQuery .newDoubleRange( key( propertyNumber ), doubleValue, doubleValue, true, true ) ); } },
static TopFieldCollector scoringCollector( Sort sorting, int n ) throws IOException { return TopFieldCollector.create( sorting, n, false, true, false ); }
private static Scorer constantScorer( float score ) { return new ConstantScoreScorer( null, score, (DocIdSetIterator) null ); } }
@Override public void close() throws IOException { referenceManager.release( indexSearcher ); } }
protected Query ne(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { BooleanQuery bq = new BooleanQuery(); bq.add(new BooleanClause(eq(operation, metadata, ignoreCase), Occur.MUST_NOT)); bq.add(new BooleanClause(new MatchAllDocsQuery(), Occur.MUST)); return bq; }
@Test void shouldBuildQueryRepresentingStringProperty() { // given BooleanQuery booleanQuery = (BooleanQuery) newSeekQuery( "Characters" ); ConstantScoreQuery query = (ConstantScoreQuery) booleanQuery.clauses().get( 0 ).getQuery(); // then assertEquals( "Characters", ((TermQuery) query.getQuery()).getTerm().text() ); }
public WritableIndexPartition( File partitionFolder, Directory directory, IndexWriterConfig writerConfig ) throws IOException { super( partitionFolder, directory ); this.indexWriter = new IndexWriter( directory, writerConfig ); this.searcherManager = new SearcherManager( indexWriter, new SearcherFactory() ); }
@Test void shouldBuildQueryRepresentingArrayProperty() { // given BooleanQuery booleanQuery = (BooleanQuery) newSeekQuery( new Object[]{new Integer[]{1, 2, 3}} ); ConstantScoreQuery constantScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 0 ).getQuery(); TermQuery query = (TermQuery) constantScoreQuery.getQuery(); // then assertEquals( "D1.0|2.0|3.0|", query.getTerm().text() ); }
private static SearcherManager instantiateSearcherManager( IndexWriter writer ) { try { return new SearcherManager( writer, true, new SearcherFactory() ); } catch ( IOException e ) { throw new RuntimeException( e ); } }