Package org.hibernate.search

Examples of org.hibernate.search.FullTextQuery


    statement.close();
    FullTextSession s = Search.createFullTextSession( sess );
    tx = s.beginTransaction();
    QueryParser parser = new QueryParser( "title", new KeywordAnalyzer() );
    Query query = parser.parse( "name:moo" );
    FullTextQuery hibQuery = s.createFullTextQuery( query, Author.class, Music.class );
    List result = hibQuery.list();
    assertEquals( "Should have returned no author", 0, result.size() );

    for (Object o : s.createCriteria( Object.class ).list()) {
      s.delete( o );
    }
View Full Code Here


        int resultSize = 0;
        //TODO The latest versions of the library filtering is not needed.
        String filteredSearchText = applyFilters(searchText, filters).trim();
        if (!StringUtils.isEmpty(filteredSearchText)) {

            FullTextQuery query = createSearchQuery(getFullTextSession(), filteredSearchText, pageRequest);

            Criteria criteria = getFullTextSession().createCriteria(Topic.class).add(
                    Restrictions.in("branch.id", allowedBranchesIds)
            );
            query.setCriteriaQuery(criteria);

            topics = query.list();
            resultSize = query.getResultSize();
        }

        return new PageImpl<Topic>(topics, pageRequest, resultSize);
    }
View Full Code Here

                andField(Topic.TOPIC_POSTS_PREFIX + Post.POST_CONTENT_FIELD_DEF).
                andField(Topic.TOPIC_POSTS_PREFIX + Post.POST_CONTENT_FIELD_RU).
                matching(searchText).
                createQuery();

        FullTextQuery query = fullTextSession.createFullTextQuery(luceneQuery);

        query.setFirstResult(pageRequest.getOffset());
        query.setMaxResults(pageRequest.getPageSize());

        return query;
    }
View Full Code Here

    Query query = parser.parse( "summary:Festina Or brand:Seiko" );
    Statistics stats = s.getSessionFactory().getStatistics();
    stats.clear();
    boolean enabled = stats.isStatisticsEnabled();
    if ( !enabled ) stats.setStatisticsEnabled( true );
    FullTextQuery hibQuery = s.createFullTextQuery( query, Clock.class, Book.class );
    assertEquals( "Exection of getResultSize without actual results", 2, hibQuery.getResultSize() );
    assertEquals( "No entity should be loaded", 0, stats.getEntityLoadCount() );

    query = parser.parse( "summary:Festina Or brand:Seiko" );
    hibQuery = s.createFullTextQuery( query );
    List result = hibQuery.list();
    assertNotNull( result );
    assertEquals( "2 entities should be loaded", 2, stats.getEntityLoadCount() );
    if ( !enabled ) stats.setStatisticsEnabled( false );
    for (Object element : s.createQuery( "from java.lang.Object" ).list()) s.delete( element );
    tx.commit();
View Full Code Here

    tx = s.beginTransaction();


    QueryParser parser = new QueryParser( "name", s.getSearchFactory().getAnalyzer( SubClass.class ) );
    org.apache.lucene.search.Query luceneQuery = parser.parse( "name:Proca\u00EFne" );
    FullTextQuery query = s.createFullTextQuery( luceneQuery, SubClass.class );
    assertEquals( 1, query.getResultSize() );

    luceneQuery = parser.parse( "name:Procaine" );
    query = s.createFullTextQuery( luceneQuery, SubClass.class );
    assertEquals( 1, query.getResultSize() );

    // make sure the result is not always 1
    luceneQuery = parser.parse( "name:foo" );
    query = s.createFullTextQuery( luceneQuery, SubClass.class );
    assertEquals( 0, query.getResultSize() );

    tx.commit();
    s.close();
  }
View Full Code Here

  public void runHSearch() {
    try {
      Query q = getQuery();
      // Search
      FullTextSession ftSession = Search.getFullTextSession( sf.openSession(  ) );
      final FullTextQuery textQuery = ftSession.createFullTextQuery( q, Boat.class )
          .setMaxResults( 100 ).setProjection( "name" );
      long start = System.currentTimeMillis();
      List results = textQuery.list();
      int resultSize = textQuery.getResultSize();
      long totalTime = System.currentTimeMillis() - start;
      ftSession.close();
//      log.error( "HSearch [ Thread-id : " + threadId + " ] Total time taken for search is : " + totalTime + "ms with total no. of matching records : " + resultSize );
      setTime( totalTime );
    }
View Full Code Here

    tx = s.beginTransaction();
    QueryParser parser = new QueryParser( "id", new StandardAnalyzer() );
    {
      Query luceneQuery =  new MatchAllDocsQuery();
      FullTextQuery query = s.createFullTextQuery( luceneQuery );
      assertEquals( 2, query.getResultSize() );
    }
    {
      Query luceneQuery =  parser.parse( "entity:alarm" );
      FullTextQuery query = s.createFullTextQuery( luceneQuery, MyEntity.class );
      assertEquals( 1, query.getResultSize() );
    }
    {
      Query luceneQuery = parser.parse( "property:sound" );
      FullTextQuery query = s.createFullTextQuery( luceneQuery, AlarmEntity.class );
      assertEquals( 0, query.getResultSize() );
    }
   
    tx.commit();
    s.close();
  }
View Full Code Here

    createTestBooks(s);
    Transaction tx = s.beginTransaction();
    QueryParser parser = new QueryParser("title", new StopAnalyzer() );

    Query query = parser.parse( "summary:lucene" );
    FullTextQuery hibQuery = s.createFullTextQuery( query, Book.class );
    List<Book> result = hibQuery.list();
    assertNotNull( result );
    assertEquals( "Wrong number of test results.", 3, result.size() );
    // make sure that the order is according to in which order the books got inserted
    // into the index.
    int id = 1;
    for(Book b : result) {
      assertEquals( "Expected another id", Integer.valueOf( id ), b.getId() );
      id++;
    }

    // now the same query, but with a lucene sort specified.
    query = parser.parse( "summary:lucene" );
    hibQuery = s.createFullTextQuery( query, Book.class );
    Sort sort = new Sort(new SortField("id", true));
    hibQuery.setSort(sort);
    result = hibQuery.list();
    assertNotNull( result );
    assertEquals( "Wrong number of test results.", 3, result.size() );
    id = 3;
    for(Book b : result) {
      assertEquals("Expected another id", Integer.valueOf( id ), b.getId());
      id--;
    }

    // order by summary
    query = parser.parse( "summary:lucene OR summary:action" );
    hibQuery = s.createFullTextQuery( query, Book.class );
    sort = new Sort( new SortField( "summary_forSort", false ) ); //ASC
    hibQuery.setSort( sort );
    result = hibQuery.list();
    assertNotNull( result );
    assertEquals( "Wrong number of test results.", 4, result.size() );
    assertEquals( "Groovy in Action", result.get( 0 ).getSummary() );

    // order by summary backwards
    query = parser.parse( "summary:lucene OR summary:action" );
    hibQuery = s.createFullTextQuery( query, Book.class );
    sort = new Sort( new SortField( "summary_forSort", true ) ); //DESC
    hibQuery.setSort( sort );
    result = hibQuery.list();
    assertNotNull( result );
    assertEquals( "Wrong number of test results.", 4, result.size() );
    assertEquals( "Hibernate & Lucene", result.get( 0 ).getSummary() );

    // order by date backwards
    query = parser.parse( "summary:lucene OR summary:action" );
    hibQuery = s.createFullTextQuery( query, Book.class );
    sort = new Sort( new SortField( "publicationDate", SortField.STRING, true ) ); //DESC
    hibQuery.setSort( sort );
    result = hibQuery.list();
    assertNotNull( result );
    assertEquals( "Wrong number of test results.", 4, result.size() );
    for (Book book : result) {
      System.out.println(book.getSummary() + " : " + book.getPublicationDate() );
    }
View Full Code Here

    // at query time we use a standard analyzer. We explicitly search for tokens which can only be found if the
    // right language specific stemmer was used at index time
    QueryParser parser = new QueryParser( "references.text", new StandardAnalyzer() );
    org.apache.lucene.search.Query luceneQuery = parser.parse( "aufeinanderschlug" );
    FullTextQuery query = s.createFullTextQuery( luceneQuery );
    assertEquals( 1, query.getResultSize() );

    parser = new QueryParser( "text", new StandardAnalyzer() );
    luceneQuery = parser.parse( "acknowledg" );
    query = s.createFullTextQuery( luceneQuery );
    assertEquals( 1, query.getResultSize() );

    tx.commit();
    s.close();
  }
View Full Code Here

    tx.commit();

    tx = s.beginTransaction();
    QueryParser parser = new QueryParser( "id", new StandardAnalyzer() );
    org.apache.lucene.search.Query luceneQuery = parser.parse( "entity:alarm" );
    FullTextQuery query = s.createFullTextQuery( luceneQuery, MyEntity.class );
    assertEquals( 1, query.getResultSize() );

    luceneQuery = parser.parse( "property:cat" );
    query = s.createFullTextQuery( luceneQuery, MyEntity.class );
    assertEquals( 1, query.getResultSize() );

    luceneQuery = parser.parse( "field:energy" );
    query = s.createFullTextQuery( luceneQuery, MyEntity.class );
    assertEquals( 1, query.getResultSize() );

    luceneQuery = parser.parse( "component.componentProperty:noise" );
    query = s.createFullTextQuery( luceneQuery, MyEntity.class );
    assertEquals( 1, query.getResultSize() );

    s.delete( query.uniqueResult() );
    tx.commit();

    s.close();
  }
View Full Code Here

TOP

Related Classes of org.hibernate.search.FullTextQuery

Copyright © 2018 www.massapicom. 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.