Package org.hibernate.search

Examples of org.hibernate.search.FullTextQuery


    s.getTransaction().begin();
    BooleanQuery query = new BooleanQuery();
    query.add( new TermQuery( new Term("teacher", "andre") ), BooleanClause.Occur.SHOULD );
    query.add( new TermQuery( new Term("teacher", "max") ), BooleanClause.Occur.SHOULD );
    query.add( new TermQuery( new Term("teacher", "aaron") ), BooleanClause.Occur.SHOULD );
    FullTextQuery ftQuery = s.createFullTextQuery( query, Driver.class );
    assertEquals("No filter should happen", 3, ftQuery.getResultSize() );

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "bestDriver");
    assertEquals("Should filter out Gavin", 2, ftQuery.getResultSize() );

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "bestDriver");
    ftQuery.enableFullTextFilter( "security").setParameter( "login", "andre" );
    assertEquals("Should filter to limit to Emmanuel", 1, ftQuery.getResultSize() );

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "bestDriver");
    ftQuery.enableFullTextFilter( "security").setParameter( "login", "andre" );
    ftQuery.disableFullTextFilter( "security");
    ftQuery.disableFullTextFilter( "bestDriver");
    assertEquals("Should not filter anymore", 3, ftQuery.getResultSize() );

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


    s.getTransaction().begin();
    BooleanQuery query = new BooleanQuery();
    query.add( new TermQuery( new Term("teacher", "andre") ), BooleanClause.Occur.SHOULD );
    query.add( new TermQuery( new Term("teacher", "max") ), BooleanClause.Occur.SHOULD );
    query.add( new TermQuery( new Term("teacher", "aaron") ), BooleanClause.Occur.SHOULD );
    FullTextQuery ftQuery = s.createFullTextQuery( query, Driver.class );
    assertEquals("No filter should happen", 3, ftQuery.getResultSize() );

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "cachetest");
    assertEquals("Should filter out all", 0, ftQuery.getResultSize() );

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "cachetest");
    try {
      ftQuery.getResultSize();
    }
    catch (IllegalStateException e) {
      fail("Cache does not work");
    }
View Full Code Here

    s.getTransaction().begin();
    BooleanQuery query = new BooleanQuery();
    query.add( new TermQuery( new Term("teacher", "andre") ), BooleanClause.Occur.SHOULD );
    query.add( new TermQuery( new Term("teacher", "max") ), BooleanClause.Occur.SHOULD );
    query.add( new TermQuery( new Term("teacher", "aaron") ), BooleanClause.Occur.SHOULD );
    FullTextQuery ftQuery;

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "bestDriver");
    Filter dateFilter = new RangeFilter("delivery", "2001", "2005",
        true, true);
    ftQuery.setFilter( dateFilter );
    assertEquals("Should select only liz", 1, ftQuery.getResultSize() );

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.setFilter( dateFilter );
    ftQuery.enableFullTextFilter( "bestDriver");
    ftQuery.enableFullTextFilter( "security").setParameter( "login", "andre" );
    ftQuery.disableFullTextFilter( "security");
    ftQuery.disableFullTextFilter( "bestDriver");
    ftQuery.setFilter( null );
    assertEquals("Should not filter anymore", 3, ftQuery.getResultSize() );

    s.getTransaction().commit();
    s.close();
    deleteData();
  }
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", new Integer(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", new Integer(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

    FullTextSession s = Search.createFullTextSession( sess );
    tx = s.beginTransaction();
    QueryParser parser = new QueryParser( "title", new KeywordAnalyzer() );
    Query query = parser.parse( "title:moo" );
    FullTextQuery hibQuery = s.createFullTextQuery( query, Music.class );
    List result = hibQuery.list();
    assertEquals( "Should have returned 2 Books", 2, result.size() );
    music = (Music) result.get( 0 );
    assertEquals( "Book 1 should have four authors", 4, music.getAuthors().size() );
    music2 = (Music) result.get( 1 );
    assertEquals( "Book 2 should have four authors", 4, music2.getAuthors().size() );
View Full Code Here

      Session s = sf.openSession();
      Transaction tx = s.beginTransaction();
      QueryParser parser = new MultiFieldQueryParser(
          new String[] {"name", "physicalDescription", "suspectCharge"},
          new StandardAnalyzer() );
      FullTextQuery query = getQuery( "John Doe", parser, s );
      assertTrue( query.getResultSize() != 0 );

      query = getQuery( "green",  parser, s );
      random.nextInt( query.getResultSize() - 15 );
      query.setFirstResult( random.nextInt( query.getResultSize() - 15 ) );
      query.setMaxResults( 10 );
      query.list();
      tx.commit();
      s.close();

      s = sf.openSession();
      tx = s.beginTransaction();

      query = getQuery( "John Doe", parser, s );
      assertTrue( query.getResultSize() != 0 );

      query = getQuery( "thief",  parser, s );
      int firstResult = random.nextInt( query.getResultSize() - 15 );
      query.setFirstResult( firstResult );
      query.setMaxResults( 10 );
      List result = query.list();
      Object object = result.get(0);
      if (insert && object instanceof Detective) {
        Detective detective = (Detective) object;
        detective.setPhysicalDescription( detective.getPhysicalDescription() + " Eye" + firstResult );
      }
View Full Code Here

      Session s = sf.openSession();
      Transaction tx = s.beginTransaction();
      QueryParser parser = new MultiFieldQueryParser(
          new String[] {"name", "physicalDescription", "suspectCharge"},
          new StandardAnalyzer() );
      FullTextQuery query = getQuery( "John Doe", parser, s );
      assertTrue( query.getResultSize() != 0 );

      query = getQuery( "london",  parser, s );
      random.nextInt( query.getResultSize() - 15 );
      query.setFirstResult( random.nextInt( query.getResultSize() - 15 ) );
      query.setMaxResults( 10 );
      query.list();
      tx.commit();
      s.close();

      s = sf.openSession();
      tx = s.beginTransaction();

      getQuery( "John Doe", parser, s );
      assertTrue( query.getResultSize() != 0 );

      query = getQuery( "green",  parser, s );
      random.nextInt( query.getResultSize() - 15 );
      query.setFirstResult( random.nextInt( query.getResultSize() - 15 ) );
      query.setMaxResults( 10 );
      query.list();
      tx.commit();
      s.close();
    }
View Full Code Here

    // search if the record made it into the index
    tx = s.beginTransaction();
    String searchQuery = "Joe";
    QueryParser parser = new QueryParser( "Content", new StandardAnalyzer() );
    Query luceneQuery = parser.parse( searchQuery );
    FullTextQuery query = s.createFullTextQuery( luceneQuery );
    List results = query.list();
    assertTrue( "We should have a hit", results.size() == 1 );
    tx.commit();

    // Now try to delete
    tx = s.beginTransaction();
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.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.