@Override public DocIdSet getDocIdSet(final IndexReader reader) throws IOException { return this.underlying.getDocIdSet(reader); }
public BitSet bits(IndexReader reader) throws IOException { if (cache == null) { cache = new WeakHashMap(); } synchronized (cache) { // check cache BitSet cached = (BitSet) cache.get(reader); if (cached != null) { return cached; } } final BitSet bits = filter.bits(reader); synchronized (cache) { // update cache cache.put(reader, bits); } return bits; }
@Override public boolean equals(Object o) { if (o == this) return true; if (o == null || !(o instanceof FilterClause)) return false; final FilterClause other = (FilterClause)o; return this.filter.equals(other.filter) && this.occur == other.occur; }
@Override public int hashCode() { return 31 * super.hashCode() + hashCode; }
@Override public Query rewrite(IndexReader reader) throws IOException { if (getBoost() != 1f) { return super.rewrite(reader); } return FilteredQuery.RANDOM_ACCESS_FILTER_STRATEGY.rewrite(this); } }
@Override public Query rewrite(IndexReader reader) throws IOException { if (getBoost() != 1f) { return super.rewrite(reader); } return FilteredQuery.RANDOM_ACCESS_FILTER_STRATEGY.rewrite(this); } }
@Override public DocIdSet getDocIdSet(AtomicReaderContext context, Bits acceptDocs) throws IOException { if (_filters.size() == 1) { return _filters.get(0).getDocIdSet(context, acceptDocs); } else { List<DocIdSet> list = new ArrayList<DocIdSet>(_filters.size()); for (Filter f : _filters) { list.add(f.getDocIdSet(context, acceptDocs)); } return new OrDocIdSet(list); } } }
/** * @return a DocIdSet that provides the documents which should be * permitted or prohibited in search results. * @see DocIdBitSet */ public DocIdSet getDocIdSet(IndexReader reader) throws IOException { return new DocIdBitSet(bits(reader)); } }
public static JsonObject fromLuceneFilter(Filter luceneFilter) { if ( luceneFilter instanceof QueryWrapperFilter ) { Query query = ( (QueryWrapperFilter) luceneFilter ).getQuery(); query.setBoost( luceneFilter.getBoost() * query.getBoost() ); return fromLuceneQuery( query ); } else if ( luceneFilter instanceof DistanceFilter ) { return convertDistanceFilter( (DistanceFilter) luceneFilter ); } else if ( luceneFilter instanceof SpatialHashFilter ) { return convertSpatialHashFilter( (SpatialHashFilter) luceneFilter ); } throw LOG.cannotTransformLuceneFilterIntoEsQuery( luceneFilter ); }
@Override public DocIdSet getDocIdSet(AtomicReaderContext context, Bits acceptDocs) throws IOException { if (_filters.size() == 1) { return _filters.get(0).getDocIdSet(context, acceptDocs); } else { List<DocIdSet> list = new ArrayList<DocIdSet>(_filters.size()); for (Filter f : _filters) { list.add(f.getDocIdSet(context, acceptDocs)); } return new AndDocIdSet(list); } } }
/** * @return a DocIdSet that provides the documents which should be * permitted or prohibited in search results. * @see DocIdBitSet */ public DocIdSet getDocIdSet(IndexReader reader) throws IOException { return new DocIdBitSet(bits(reader)); } }
@Override public DocIdSet getDocIdSet(final IndexReader reader) throws IOException { DocIdSet docIdSet = this.underlying.getDocIdSet(reader); if (docIdSet == null || docIdSet.iterator() == null) { return OpenBitSetDISI.EMPTY_DOCIDSET; } else { return docIdSet; } }
/** * @deprecated Use {@link #getDocIdSet(IndexReader)} instead. */ public BitSet bits(IndexReader reader) throws IOException { if (cache == null) { cache = new WeakHashMap(); } Object cached = null; synchronized (cache) { // check cache cached = cache.get(reader); } if (cached != null) { if (cached instanceof BitSet) { return (BitSet) cached; } else if (cached instanceof DocIdBitSet) return ((DocIdBitSet) cached).getBitSet(); // It would be nice to handle the DocIdSet case, but that's not really possible } final BitSet bits = filter.bits(reader); synchronized (cache) { // update cache cache.put(reader, bits); } return bits; }