Java Code Examples for org.apache.lucene.search.QueryWrapperFilter

The following examples show how to use org.apache.lucene.search.QueryWrapperFilter. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
private Filter buildNewFilter(Query query, ConcurrentMap<String, String> filterAlias, FilterParser filterParser)
    throws ParseException {
  if (query instanceof BooleanQuery) {
    BooleanQuery booleanQuery = (BooleanQuery) query;
    BooleanFilter booleanFilter = new BooleanFilter();
    for (BooleanClause clause : booleanQuery.clauses()) {
      booleanFilter.add(buildNewFilter(clause.getQuery(), filterAlias, filterParser), clause.getOccur());
    }
    return booleanFilter;
  } else if (query instanceof TermQuery) {
    TermQuery termQuery = (TermQuery) query;
    Term term = termQuery.getTerm();
    String key = term.toString();
    String queryStr = filterAlias.get(key);
    if (queryStr == null) {
      return new QueryWrapperFilter(termQuery);
    }
    String id = getId(key);
    return new FilterCache(id, new QueryWrapperFilter(filterParser.parse(queryStr)));
  } else {
    return new QueryWrapperFilter(query);
  }
}
 
Example 2
Source Project: incubator-retired-blur   Source File: IndexManagerTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void testFetchRowByRecordIdWithFilterNoHit() throws Exception {
  IndexManagerTestReadInterceptor.interceptor = new ReadInterceptor(null) {
    @Override
    public Filter getFilter() {
      return new QueryWrapperFilter(new TermQuery(new Term(FAMILY + ".testcol1", "NOHIT")));
    }
  };
  Selector selector = new Selector().setRowId("row-1").setRecordId("record-1").setRecordOnly(true);
  FetchResult fetchResult = new FetchResult();
  indexManager.fetchRow(TABLE, selector, fetchResult);
  assertFalse(fetchResult.deleted);
  assertFalse(fetchResult.exists);
  assertEquals(TABLE, fetchResult.table);
  assertNull(fetchResult.rowResult);
  assertNull(fetchResult.recordResult);
}
 
Example 3
Source Project: BioSolr   Source File: XJoinQParserPlugin.java    License: Apache License 2.0 6 votes vote down vote up
@Override
@SuppressWarnings("unchecked")
public Query parse() throws SyntaxError {
  Method method = Method.valueOf(localParams.get(METHOD, Method.termsFilter.name()));
  JoinSpec<T> js = JoinSpec.parse(localParams.get(QueryParsing.V));
  Iterator<T> it = js.iterator(this);
  if (joinField == null) {
    throw new Exception("No XJoin component referenced by query");
  }
  FieldType ft = req.getSchema().getFieldTypeNoEx(joinField);
  Iterator<BytesRef> bytesRefs = new TransformIterator(it, transformer(ft));
  if (! bytesRefs.hasNext()) {
    return new BooleanQuery.Builder().build(); // matches nothing
  }
  Query query = method.makeQuery(joinField, bytesRefs);
  return new SolrConstantScoreQuery(new QueryWrapperFilter(query));
}
 
Example 4
@Override
public Filter storePreFilter(String table, String filterStr, Filter filter, FilterParser filterParser)
    throws ParseException {
  if (filter instanceof QueryWrapperFilter) {
    QueryWrapperFilter queryWrapperFilter = (QueryWrapperFilter) filter;
    Query query = queryWrapperFilter.getQuery();
    Filter newFilter = buildNewFilter(query, _tableAliasFilterMap.get(table), filterParser);
    FilterKey key = new FilterKey(table, filterStr);
    _preFilterCacheMap.put(key, newFilter);
    return newFilter;
  }
  return filter;
}
 
Example 5
Source Project: incubator-retired-blur   Source File: IndexManagerTest.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testFetchRowByRowIdWithFilterNoRow() throws Exception {
  IndexManagerTestReadInterceptor.interceptor = new ReadInterceptor(null) {
    @Override
    public Filter getFilter() {
      return new QueryWrapperFilter(new TermQuery(new Term(FAMILY + ".testcol12", "NOROW-1")));
    }
  };
  Selector selector = new Selector().setRowId("row-6");
  FetchResult fetchResult = new FetchResult();
  indexManager.fetchRow(TABLE, selector, fetchResult);
  assertTrue(fetchResult.exists);
  assertFalse(fetchResult.deleted);
  assertNull(fetchResult.rowResult.row.records);
}
 
Example 6
Source Project: incubator-retired-blur   Source File: IndexManagerTest.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testQuerySuperQueryTrueWithFilter() throws Exception {
  IndexManagerTestReadInterceptor.interceptor = new ReadInterceptor(null) {
    @Override
    public Filter getFilter() {
      return new QueryWrapperFilter(new TermQuery(new Term(FAMILY + ".testcol2", "value2")));
    }
  };
  BlurQuery blurQuery = new BlurQuery();
  blurQuery.query = new Query();
  blurQuery.query.query = "test-family.testcol1:value1";
  blurQuery.query.rowQuery = true;
  blurQuery.query.scoreType = ScoreType.SUPER;
  blurQuery.fetch = 10;
  blurQuery.minimumNumberOfResults = Long.MAX_VALUE;
  blurQuery.maxQueryTime = Long.MAX_VALUE;
  blurQuery.uuid = "1";

  BlurResultIterable iterable = indexManager.query(TABLE, blurQuery, null);
  assertEquals(1, iterable.getTotalResults());
  BlurIterator<BlurResult, BlurException> iterator = iterable.iterator();
  while (iterator.hasNext()) {
    BlurResult result = iterator.next();
    Selector selector = new Selector().setLocationId(result.getLocationId());
    FetchResult fetchResult = new FetchResult();
    indexManager.fetchRow(TABLE, selector, fetchResult);
    assertNotNull(fetchResult.rowResult);
    assertNull(fetchResult.recordResult);
  }

  assertFalse(indexManager.currentQueries(TABLE).isEmpty());
  Thread.sleep(2000);// wait for cleanup to fire
  assertTrue(indexManager.currentQueries(TABLE).isEmpty());
}
 
Example 7
Source Project: incubator-retired-blur   Source File: FilterCacheTest.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void test1() throws IOException {
  Filter filter = new QueryWrapperFilter(new TermQuery(new Term("f1", "t1")));
  FilterCache filterCache = new FilterCache("filter1", filter);
  RAMDirectory directory = new RAMDirectory();
  writeDocs(filterCache, directory);

  DirectoryReader reader = DirectoryReader.open(directory);

  IndexSearcher searcher = new IndexSearcher(reader);

  Query query = new TermQuery(new Term("f2", "t2"));
  TopDocs topDocs1 = searcher.search(query, filterCache, 10);
  assertEquals(1, filterCache.getMisses());
  assertEquals(0, filterCache.getHits());
  assertEquals(1, topDocs1.totalHits);

  TopDocs topDocs2 = searcher.search(query, filterCache, 10);
  assertEquals(1, filterCache.getMisses());
  assertEquals(1, filterCache.getHits());
  assertEquals(1, topDocs2.totalHits);

  TopDocs topDocs3 = searcher.search(query, filterCache, 10);
  assertEquals(1, filterCache.getMisses());
  assertEquals(2, filterCache.getHits());
  assertEquals(1, topDocs3.totalHits);
}
 
Example 8
Source Project: BioSolr   Source File: XJoinQParserPlugin.java    License: Apache License 2.0 5 votes vote down vote up
@Override
Filter makeFilter(String fname, Iterator<BytesRef> it) {
  BooleanQuery bq = new BooleanQuery(true);
  while (it.hasNext()) {
    bq.add(new TermQuery(new Term(fname, it.next())), BooleanClause.Occur.SHOULD);
  }
  return new QueryWrapperFilter(bq);
}
 
Example 9
Source Project: maven-framework-project   Source File: DeviceFilterFactory.java    License: MIT License 5 votes vote down vote up
/**
 * When a @FullTextFilterDef annotation associates this factory class with a given name, and a "FullTextQuery.enableFullTextFilter()" is 
 * called with that name as its input parameter, then this method is used to return a Filter with the actual filtering logic.  It is 
 * the @Factory annotation that designates this method as having that responsibility for this factory class. 
 */
@Factory
public Filter getFilter() {
	StringTokenizer tokenzier = new StringTokenizer(deviceName.toLowerCase());
	PhraseQuery query = new PhraseQuery();
	while(tokenzier.hasMoreTokens()) {
		// By default, field values were converted to lower-case when indexed by Lucene.  So be sure to 
		// convert search terms to lower-case in order to make them match.
		Term term = new Term("supportedDevices.name", tokenzier.nextToken().toLowerCase());
		query.add(term);
	}
	Filter filter = new QueryWrapperFilter(query);
	return new CachingWrapperFilter(filter);
}
 
Example 10
Source Project: maven-framework-project   Source File: DeviceFilterFactory.java    License: MIT License 5 votes vote down vote up
/**
 * When a @FullTextFilterDef annotation associates this factory class with a given name, and a "FullTextQuery.enableFullTextFilter()" is 
 * called with that name as its input parameter, then this method is used to return a Filter with the actual filtering logic.  It is 
 * the @Factory annotation that designates this method as having that responsibility for this factory class. 
 */
@Factory
public Filter getFilter() {
	StringTokenizer tokenzier = new StringTokenizer(deviceName.toLowerCase());
	PhraseQuery query = new PhraseQuery();
	while(tokenzier.hasMoreTokens()) {
		// By default, field values were converted to lower-case when indexed by Lucene.  So be sure to 
		// convert search terms to lower-case in order to make them match.
		Term term = new Term("supportedDevices.name", tokenzier.nextToken().toLowerCase());
		query.add(term);
	}
	Filter filter = new QueryWrapperFilter(query);
	return new CachingWrapperFilter(filter);
}
 
Example 11
Source Project: maven-framework-project   Source File: DeviceFilterFactory.java    License: MIT License 5 votes vote down vote up
/**
 * When a @FullTextFilterDef annotation associates this factory class with a given name, and a "FullTextQuery.enableFullTextFilter()" is 
 * called with that name as its input parameter, then this method is used to return a Filter with the actual filtering logic.  It is 
 * the @Factory annotation that designates this method as having that responsibility for this factory class. 
 */
@Factory
public Filter getFilter() {
	StringTokenizer tokenzier = new StringTokenizer(deviceName.toLowerCase());
	PhraseQuery query = new PhraseQuery();
	while(tokenzier.hasMoreTokens()) {
		// By default, field values were converted to lower-case when indexed by Lucene.  So be sure to 
		// convert search terms to lower-case in order to make them match.
		Term term = new Term("supportedDevices.name", tokenzier.nextToken().toLowerCase());
		query.add(term);
	}
	Filter filter = new QueryWrapperFilter(query);
	return new CachingWrapperFilter(filter);
}
 
Example 12
Source Project: linden   Source File: QueryFilterConstructor.java    License: Apache License 2.0 4 votes vote down vote up
@Override
protected Filter construct(LindenFilter lindenFilter, LindenConfig config) throws Exception {
  QueryWrapperFilter filter = new QueryWrapperFilter(
      QueryConstructor.constructQuery(lindenFilter.getQueryFilter().getQuery(), config));
  return filter;
}
 
Example 13
Source Project: webdsl   Source File: NamespaceConstraintFilter.java    License: Apache License 2.0 4 votes vote down vote up
@org.hibernate.search.annotations.Factory
public Filter buildFilter(){
	Filter filter = new QueryWrapperFilter( SearchHelper.namespaceQuery(namespace) );
	filter = new CachingWrapperFilter( filter );
	return filter;
}
 
Example 14
Source Project: stratio-cassandra   Source File: Condition.java    License: Apache License 2.0 2 votes vote down vote up
/**
 * Returns the Lucene {@link Filter} representation of this condition.
 *
 * @param schema The schema to be used.
 * @return The Lucene {@link Filter} representation of this condition.
 */
public Filter filter(Schema schema) {
    return new QueryWrapperFilter(query(schema));
}