public ClusteredCacheQueryImpl(Query luceneQuery, SearchIntegrator searchFactory, ExecutorService asyncExecutor, AdvancedCache<?, ?> cache, KeyTransformationHandler keyTransformationHandler, Class<?>... classes) { super(luceneQuery, searchFactory, cache, keyTransformationHandler, null, classes); this.asyncExecutor = asyncExecutor; this.hSearchQuery = searchFactory.createHSQuery(luceneQuery, classes); }
/** * Create a CacheQueryImpl based on a Lucene query. */ public CacheQueryImpl(Query luceneQuery, SearchIntegrator searchFactory, AdvancedCache<?, ?> cache, KeyTransformationHandler keyTransformationHandler, TimeoutExceptionFactory timeoutExceptionFactory, Class<?>... classes) { this(timeoutExceptionFactory == null ? searchFactory.createHSQuery(luceneQuery, classes) : searchFactory.createHSQuery(luceneQuery, classes).timeoutExceptionFactory(timeoutExceptionFactory), cache, keyTransformationHandler); }
/** * Create a CacheQueryImpl based on a Lucene query. */ public CacheQueryImpl(Query luceneQuery, SearchIntegrator searchFactory, AdvancedCache<?, ?> cache, KeyTransformationHandler keyTransformationHandler, TimeoutExceptionFactory timeoutExceptionFactory, Class<?>... classes) { this(timeoutExceptionFactory == null ? searchFactory.createHSQuery(luceneQuery, classes) : searchFactory.createHSQuery(luceneQuery, classes).timeoutExceptionFactory(timeoutExceptionFactory), cache, keyTransformationHandler); }
public HSQuery hsQuery(Query query, Class<?> ... classes) { return integratorProvider.get().createHSQuery( query, classes ); }
@Override protected HSQuery getHSQuery() { HSQuery hsQuery = integratorProvider.get().createHSQuery( luceneQuery, classes ); before.accept( hsQuery ); return hsQuery; } }
private static void verifyMatches(SearchIntegrator searchIntegrator, int expectedMatches, Query query) { List<EntityInfo> queryEntityInfos = searchIntegrator.createHSQuery( query, Book.class ) .queryEntityInfos(); Assert.assertEquals( expectedMatches, queryEntityInfos.size() ); }
private void assertDocumentIndexed(SearchIntegrator integrator, int expectedIndexSize) { int size = integrator .createHSQuery( new MatchAllDocsQuery(), Quote.class ) .queryResultSize(); String logMessage = "Index size=" + size + ", expected=" + expectedIndexSize; System.out.println( logMessage ); Assert.assertTrue( logMessage, size >= expectedIndexSize ); }
public HsQueryRequest createHsQuery(String queryString, IndexedTypeMap<CustomTypeMetadata> metadata, Map<String, Object> nameParameters) { IckleParsingResult<TypeMetadata> parsingResult = parse(queryString); if (parsingResult.hasGroupingOrAggregations()) { throw log.groupAggregationsNotSupported(); } LuceneQueryParsingResult luceneParsingResult = transformParsingResult(parsingResult, nameParameters); org.apache.lucene.search.Query luceneQuery = makeTypeQuery(luceneParsingResult.getQuery(), luceneParsingResult.getTargetEntityName()); SearchIntegrator searchFactory = getSearchFactory(); HSQuery hsQuery = metadata == null ? searchFactory.createHSQuery(luceneQuery) : searchFactory.createHSQuery(luceneQuery, metadata); Sort sort = luceneParsingResult.getSort(); if (sort != null) { hsQuery.sort(sort); } String[] projections = luceneParsingResult.getProjections(); if (projections != null) { hsQuery.projection(projections); } return new HsQueryRequest(hsQuery, sort, projections); }
protected int queryIndex(Cache<?, ?> cache, String query) throws ParseException { QueryParser qp = createQueryParser("blurb"); Query q = qp.parse(query); HSQuery hsQuery = Search.getSearchManager(cache).unwrap(SearchIntegrator.class).createHSQuery(q, Person.class); return hsQuery.queryResultSize(); }
@Benchmark @Threads(20) public void queryBooksByBestRating(QueryEngineHolder eh, Blackhole bh) { SearchIntegrator searchIntegrator = eh.si; Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( BookEntity.class ) .get() .all() .createQuery(); long expectedIndexSize = eh.getExpectedIndexSize(); int maxResults = eh.getMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, BookEntity.class ); hsQuery.sort( new Sort( new SortField( "rating", SortField.Type.FLOAT, true ) ) ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); if ( eh.isQuerySync() && queryResultSize != expectedIndexSize ) { throw new RuntimeException( "Unexpected index size" ); } if ( maxResults != queryEntityInfos.size() ) { throw new RuntimeException( "Unexpected resultset size" ); } bh.consume( queryEntityInfos ); }
@Benchmark @GroupThreads(5) @Group("concurrentReadWriteTest") public void readWriteTestReader(QueryEngineHolder eh, Blackhole bh) { SearchIntegrator searchIntegrator = eh.si; Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( BookEntity.class ) .get() .all() .createQuery(); int maxResults = eh.getMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, BookEntity.class ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); bh.consume( queryEntityInfos ); bh.consume( queryResultSize ); }
@Benchmark @GroupThreads(2 * AbstractBookEntity.TYPE_COUNT) @Group("concurrentReadWriteTest") public void readWriteTestReader(NonStreamWriteEngineHolder eh, NonStreamQueryParams qp, Blackhole bh) { SearchIntegrator searchIntegrator = eh.getSearchIntegrator(); Class<?> entityType = qp.getEntityType(); Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( entityType ) .get() .all() .createQuery(); int maxResults = qp.getQueryMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, entityType ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); bh.consume( queryEntityInfos ); bh.consume( queryResultSize ); }
private void expectedProjections(NumericRangeQuery<Long> numericRangeQuery, String... expectedProjections) { SearchIntegrator searchFactory = factoryHolder.getSearchFactory(); QueryBuilder queryBuilder = helper.queryBuilder( Staff.class ); HSQuery hsQuery = searchFactory.createHSQuery( numericRangeQuery, Staff.class ) .projection( "name" ) .sort( queryBuilder.sort().byField( "idSort" ).createSort() ); helper.assertThat( hsQuery ) .matchesExactlySingleProjections( expectedProjections ) .hasResultSize( expectedProjections.length ); }
@Benchmark @Threads(6 * AbstractBookEntity.TYPE_COUNT) public void queryBooksByBestRating(NonStreamWriteEngineHolder eh, NonStreamQueryParams qp, Blackhole bh) { SearchIntegrator searchIntegrator = eh.getSearchIntegrator(); Class<?> entityType = qp.getEntityType(); Query luceneQuery = searchIntegrator.buildQueryBuilder() .forEntity( entityType ) .get() .all() .createQuery(); int maxResults = qp.getQueryMaxResults(); HSQuery hsQuery = searchIntegrator.createHSQuery( luceneQuery, entityType ); hsQuery.sort( new Sort( new SortField( "rating", SortField.Type.FLOAT, true ) ) ); hsQuery.maxResults( maxResults ); int queryResultSize = hsQuery.queryResultSize(); List<EntityInfo> queryEntityInfos = hsQuery.queryEntityInfos(); bh.consume( queryResultSize ); bh.consume( queryEntityInfos ); }
.createQuery(); List<EntityInfo> queryEntityInfos = searchFactory.createHSQuery(luceneQuery2, ProtobufValueWrapper.class) .projection("surname") .queryEntityInfos();