Package org.hibernate.search

Examples of org.hibernate.search.FullTextQuery


    Map<String, Float> boosts = new HashMap<String, Float>(2);
    boosts.put( "title", new Float(4) );
    boosts.put( "description", new Float(1) );
    MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] {"title", "description"}, new StandardAnalyzer(), boosts);
    Query luceneQuery = parser.parse( "dark" );
    FullTextQuery ftQuery = s.createFullTextQuery( luceneQuery, Dvd.class )
        .setProjection( FullTextQuery.DOCUMENT_ID, FullTextQuery.EXPLANATION, FullTextQuery.THIS );
    @SuppressWarnings("unchecked") List<Object[]> results = ftQuery.list();
    assertEquals( 2, results.size() );
    for (Object[] result : results) {
      assertEquals( ftQuery.explain( (Integer) result[0] ).toString(), result[1].toString() );
      s.delete( result[2] );
    }
    tx.commit();
    s.close();
View Full Code Here


      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

    statement.close();
    FullTextSession s = Search.getFullTextSession( 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

      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

    FullTextSession s = Search.getFullTextSession( 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

    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( "cacheresultstest");
    assertEquals("Should filter out all", 0, ftQuery.getResultSize() );
   
    // HSEARCH-174 - we call System.gc() to force a garbage collection.
    // Prior to the fix for HSEARCH-174 this would cause the filter to be
    // garbage collected since Lucene used weak references.
    System.gc();

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "cacheresultstest");
    try {
      ftQuery.getResultSize();
    }
    catch (IllegalStateException e) {
      fail("Cache results does not work");
    }

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

    ftQuery = s.createFullTextQuery( query, Driver.class );
    ftQuery.enableFullTextFilter( "cacheinstancetest");
    try {
      ftQuery.getResultSize();
      fail("Cache instance does not work");
    }
    catch (IllegalStateException e) {
      //success
    }
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

  public int countBusLinesByFullText() {
    FullTextSession fullTextSession = Search.getFullTextSession( sessions.openSession() );
    Transaction tx = fullTextSession.beginTransaction();
    org.apache.lucene.search.Query ftQuery = new MatchAllDocsQuery();
    FullTextQuery query = fullTextSession.createFullTextQuery( ftQuery, BusLine.class );
    int count = query.list().size();
    tx.commit();
    fullTextSession.close();
    return count;
  }
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.