Examples of LuceneQueryParsingResult


Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

  public LuceneQueryParsingResult getResult() {
    Sort sort = null;
    if ( sortFields != null ) {
      sort = new Sort( sortFields.toArray( new SortField[sortFields.size()] ) );
    }
    return new LuceneQueryParsingResult( builder.build(), targetTypeName, targetType, projections, sort );
  }
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

  public LuceneQueryParsingResult getResult() {
    Sort sort = null;
    if ( sortFields != null ) {
      sort = new Sort( sortFields.toArray( new SortField[sortFields.size()] ) );
    }
    return new LuceneQueryParsingResult( builder.build(), targetTypeName, targetType, projections, sort );
  }
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

   private QueryResponse executeQuery(AdvancedCache<byte[], byte[]> cache, SerializationContext serCtx, QueryRequest request) {
      final SearchManager searchManager = Search.getSearchManager(cache);
      final SearchFactoryIntegrator searchFactory = (SearchFactoryIntegrator) searchManager.getSearchFactory();
      final QueryCache queryCache = ComponentRegistryUtils.getQueryCache(cache)// optional component

      LuceneQueryParsingResult parsingResult;
      Query luceneQuery;

      if (queryCache != null) {
         KeyValuePair<String, Class> queryCacheKey = new KeyValuePair<String, Class>(request.getJpqlString(), LuceneQueryParsingResult.class);
         parsingResult = queryCache.get(queryCacheKey);
         if (parsingResult == null) {
            parsingResult = parseQuery(cache, serCtx, request.getJpqlString(), searchFactory);
            queryCache.put(queryCacheKey, parsingResult);
         }
      } else {
         parsingResult = parseQuery(cache, serCtx, request.getJpqlString(), searchFactory);
      }

      luceneQuery = parsingResult.getQuery();

      if (!cache.getCacheConfiguration().compatibility().enabled()) {
         // restrict on entity type
         QueryBuilder qb = searchFactory.buildQueryBuilder().forEntity(parsingResult.getTargetEntity()).get();
         luceneQuery = qb.bool()
               .must(qb.keyword().onField(TYPE_FIELD_NAME)
                           .ignoreFieldBridge()
                           .ignoreAnalyzer()
                           .matching(parsingResult.getTargetEntityName()).createQuery())
               .must(luceneQuery)
               .createQuery();
      }

      CacheQuery cacheQuery = searchManager.getQuery(luceneQuery, parsingResult.getTargetEntity());

      if (parsingResult.getSort() != null) {
         cacheQuery = cacheQuery.sort(parsingResult.getSort());
      }

      int projSize = 0;
      if (parsingResult.getProjections() != null && !parsingResult.getProjections().isEmpty()) {
         projSize = parsingResult.getProjections().size();
         cacheQuery = cacheQuery.projection(parsingResult.getProjections().toArray(new String[projSize]));
      }
      if (request.getStartOffset() > 0) {
         cacheQuery = cacheQuery.firstResult((int) request.getStartOffset());
      }
      if (request.getMaxResults() > 0) {
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

  @Override
  public Query getParsedQueryExecutor(OgmSession session, String queryString, Map<String, Object> namedParameters) {
    FullTextSession fullTextSession = Search.getFullTextSession( session );

    LuceneQueryParsingResult parsingResult = new QueryParser().parseQuery( queryString,
        createProcessingChain( session, unwrap( namedParameters ), fullTextSession ) );

    log.createdQuery( queryString, parsingResult.getQuery() );

    FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( parsingResult.getQuery(), parsingResult.getTargetEntity() );
    if ( requiresProjections( parsingResult.getProjections() ) ) {
      fullTextQuery.setProjection( parsingResult.getProjections().toArray( new String[parsingResult.getProjections().size()] ) );
    }

    fullTextQuery.setSort( parsingResult.getSort() );

    // Following options are mandatory to load matching entities without using a query
    // (chicken and egg problem)
    fullTextQuery.initializeObjectsWith( ObjectLookupMethod.SKIP, DatabaseRetrievalMethod.FIND_BY_ID );
    return fullTextQuery;
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

      }

      SearchFactoryIntegrator searchFactory = (SearchFactoryIntegrator) searchManager.getSearchFactory();
      LuceneProcessingChain processingChain = new LuceneProcessingChain.Builder(searchFactory, entityNamesResolver).buildProcessingChainForClassBasedEntities();
      QueryParser queryParser = new QueryParser();
      LuceneQueryParsingResult parsingResult = queryParser.parseQuery(jpqlString, processingChain);

      Sort sort = null;
      if (sortCriteria != null && !sortCriteria.isEmpty()) {
         SortField[] sortField = new SortField[sortCriteria.size()];
         int i = 0;
         for (SortCriteria sc : sortCriteria) {
            //TODO [anistor] sort type is not entirely correct
            PropertyMetadata propMetadata = getPropertyMetadata(parsingResult.getTargetEntity(), sc.getAttributePath());
            DocumentFieldMetadata fm = propMetadata.getFieldMetadata().iterator().next();
            int sortType = fm.isNumeric() ? SortField.INT : SortField.STRING;
            sortField[i++] = new SortField(sc.getAttributePath(), sortType, sc.getSortOrder() == SortOrder.DESC);
         }
         sort = new Sort(sortField);
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

        "+name:same -id:5" );
  }

  @Test
  public void shouldCreateProjectionQuery() {
    LuceneQueryParsingResult parsingResult = parseQuery( "select e.id, e.name from IndexedEntity e" );

    assertThat( parsingResult.getQuery().toString() ).isEqualTo( "*:*" );
    assertThat( parsingResult.getProjections() ).containsExactly( "id", "name" );
  }
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

    assertThat( parsingResult.getProjections() ).containsExactly( "id", "name" );
  }

  @Test
  public void shouldCreateEmbeddedProjectionQuery() {
    LuceneQueryParsingResult parsingResult = parseQuery( "select e.author.name from IndexedEntity e" );

    assertThat( parsingResult.getQuery().toString() ).isEqualTo( "*:*" );
    assertThat( parsingResult.getProjections() ).containsExactly( "author.name" );
  }
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

    assertThat( parsingResult.getProjections() ).containsExactly( "author.name" );
  }

  @Test
  public void shouldCreateNestedEmbeddedProjectionQuery() {
    LuceneQueryParsingResult parsingResult = parseQuery( "select e.author.address.street from IndexedEntity e" );

    assertThat( parsingResult.getQuery().toString() ).isEqualTo( "*:*" );
    assertThat( parsingResult.getProjections() ).containsExactly( "author.address.street" );
  }
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

  private void assertLuceneQuery(String queryString, String expectedLuceneQuery) {
    assertLuceneQuery( queryString, null, expectedLuceneQuery );
  }

  private void assertLuceneQuery(String queryString, Map<String, Object> namedParameters, String expectedLuceneQuery) {
    LuceneQueryParsingResult parsingResult = parseQuery( queryString, namedParameters );
    assertThat( parsingResult.getQuery().toString() ).isEqualTo( expectedLuceneQuery );

    if ( USE_STDOUT ) {
      System.out.println( expectedLuceneQuery );
      System.out.println();
    }
View Full Code Here

Examples of org.hibernate.hql.lucene.LuceneQueryParsingResult

    parseQuery( "select author from IndexedEntity e" );
  }

  @Test
  public void shouldDetermineTargetEntityType() {
    LuceneQueryParsingResult parsingResult = parseQuery( "select e from IndexedEntity e where e.name = 'same' and not e.id = 5" );
    assertThat( parsingResult.getTargetEntity() ).isSameAs( IndexedEntity.class );
    assertThat( parsingResult.getTargetEntityName() ).isEqualTo( "IndexedEntity" );

    parsingResult = parseQuery( "select e from org.hibernate.hql.lucene.test.model.IndexedEntity e" );
    assertThat( parsingResult.getTargetEntity() ).isSameAs( IndexedEntity.class );
    assertThat( parsingResult.getTargetEntityName() ).isEqualTo( "org.hibernate.hql.lucene.test.model.IndexedEntity" );
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.