Package org.hibernate.search.jpa

Examples of org.hibernate.search.jpa.FullTextEntityManager


    tm.commit();
    em.close();

    tm.begin();
    em = factory.createEntityManager();
    FullTextEntityManager ftem = Search.getFullTextEntityManager( em );
    final QueryBuilder builder = ftem.getSearchFactory().buildQueryBuilder().forEntity( Tweet.class ).get();
    final Query query = builder
        .keyword()
        .onField( "text" )
        .matching( "spice" )
        .createQuery();

    ftem.createFullTextQuery( query, Tweet.class ).getResultList();
    final List resultList = em.createQuery( "from " + Tweet.class.getName() ).getResultList();
    Assert.assertEquals( 1, resultList.size() );
    for ( Object o : resultList ) {
      em.remove( o );
    }
View Full Code Here


    entityManager = factory.createEntityManager();
  }

  @After
  public void tearDown() {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager( entityManager );
    fullTextEntityManager.purgeAll( Book.class );
    fullTextEntityManager.flushToIndexes();
    fullTextEntityManager.close();
    super.tearDown();
  }
View Full Code Here

public class EntityManagerTest extends JPATestCase {

  @Test
  public void testMassIndexer() throws Exception {
    // index a Bretzel
    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );
    em.getTransaction().begin();
    Bretzel bretzel = new Bretzel( 23, 34 );
    em.persist( bretzel );
    em.getTransaction().commit();
    em.clear();

    // verify against index
    assertEquals( 1, countBretzelsViaIndex( em ) );
    em.purgeAll( Bretzel.class );

    // clear index
    em.flushToIndexes();

    // verify Bretzel removed from index
    assertEquals( 0, countBretzelsViaIndex( em ) );

    // re-index
    em.createIndexer( Bretzel.class ).startAndWait();
    assertEquals( 1, countBretzelsViaIndex( em ) );
  }
View Full Code Here

    assertEquals( 1, countBretzelsViaIndex( em ) );
  }

  @Test
  public void testQuery() throws Exception {
    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );
    em.getTransaction().begin();
    Bretzel bretzel = new Bretzel( 23, 34 );
    em.persist( bretzel );
    em.getTransaction().commit();
    em.clear();
    em.getTransaction().begin();
    QueryParser parser = new QueryParser( getTargetLuceneVersion(), "title", TestConstants.stopAnalyzer );
    Query query = parser.parse( "saltQty:noword" );
    assertEquals( 0, em.createFullTextQuery( query ).getResultList().size() );
    query = new TermQuery( new Term( "saltQty", "23" ) );
    assertEquals( "getResultList", 1, em.createFullTextQuery( query ).getResultList().size() );
    assertEquals(
        "getSingleResult and object retrieval", 23,
        ( (Bretzel) em.createFullTextQuery( query ).getSingleResult() ).getSaltQty()
    );
    assertEquals( 1, em.createFullTextQuery( query ).getResultSize() );
    em.getTransaction().commit();

    em.clear();

    em.getTransaction().begin();
    em.remove( em.find( Bretzel.class, bretzel.getId() ) );
    em.getTransaction().commit();
    em.close();
  }
View Full Code Here

    em.close();
  }

  @Test
  public void testIndex() {
    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );
    em.getTransaction().begin();
    Bretzel bretzel = new Bretzel( 23, 34 );
    em.persist( bretzel );
    em.getTransaction().commit();
    em.clear();

    //Not really a unit test but a test that shows the method call without failing
    //FIXME port the index test
    em.getTransaction().begin();
    em.index( em.find( Bretzel.class, bretzel.getId() ) );
    em.getTransaction().commit();

    em.getTransaction().begin();
    em.remove( em.find( Bretzel.class, bretzel.getId() ) );
    em.getTransaction().commit();
    em.close();
  }
View Full Code Here

    POI poi3 = new POI( 3, "Distance to 24,32 : 11.12", 23.9d, 32.0d, "" );
    POI poi4 = new POI( 4, "Distance to 24,32 : 15.06", 23.9d, 32.1d, "" );
    POI poi5 = new POI( 5, "Distance to 24,32 : 22.24", 24.2d, 32.0d, "" );
    POI poi6 = new POI( 6, "Distance to 24,32 : 24.45", 24.2d, 31.9d, "" );

    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );

    em.getTransaction().begin();
    em.persist( poi );
    em.persist( poi2 );
    em.persist( poi3 );
    em.getTransaction().commit();
    em.clear();
    em.getTransaction().begin();
    em.persist( poi4 );
    em.persist( poi5 );
    em.persist( poi6 );
    em.getTransaction().commit();

    em.getTransaction().begin();
    double centerLatitude = 24.0d;
    double centerLongitude = 32.0d;

    final QueryBuilder builder = em.getSearchFactory().buildQueryBuilder().forEntity( POI.class ).get();

    org.apache.lucene.search.Query luceneQuery = builder.spatial().onCoordinates( "location" )
        .within( 100, Unit.KM ).ofLatitude( centerLatitude ).andLongitude( centerLongitude ).createQuery();

    FullTextQuery hibQuery = em.createFullTextQuery( luceneQuery, POI.class );
    hibQuery.setProjection( FullTextQuery.THIS, FullTextQuery.SPATIAL_DISTANCE );
    hibQuery.setSpatialParameters( centerLatitude, centerLongitude, "location" );
    List results = hibQuery.getResultList();
    Object[] firstResult = (Object[]) results.get( 0 );
    Object[] secondResult = (Object[]) results.get( 1 );
    Object[] thirdResult = (Object[]) results.get( 2 );
    Object[] fourthResult = (Object[]) results.get( 3 );
    Object[] fifthResult = (Object[]) results.get( 4 );
    Object[] sixthResult = (Object[]) results.get( 5 );
    Assert.assertEquals( (Double) firstResult[1], 0.0, 0.0001 );
    Assert.assertEquals( (Double) secondResult[1], 10.1582, 0.0001 );
    Assert.assertEquals( (Double) thirdResult[1], 11.1195, 0.0001 );
    Assert.assertEquals( (Double) fourthResult[1], 15.0636, 0.0001 );
    Assert.assertEquals( (Double) fifthResult[1], 22.239, 0.001 );
    Assert.assertEquals( (Double) sixthResult[1], 24.446, 0.001 );

    List<?> pois = em.createQuery( "from " + POI.class.getName() ).getResultList();
    for ( Object entity : pois ) {
      em.remove( entity );
    }
    em.getTransaction().commit();
    em.close();
  }
View Full Code Here

    POI poi3 = new POI( 3, "Distance to 24,32 : 11.12", 23.9d, 32.0d, "" );
    POI poi4 = new POI( 4, "Distance to 24,32 : 15.06", 23.9d, 32.1d, "" );
    POI poi5 = new POI( 5, "Distance to 24,32 : 22.24", 24.2d, 32.0d, "" );
    POI poi6 = new POI( 6, "Distance to 24,32 : 24.45", 24.2d, 31.9d, "" );

    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );

    em.getTransaction().begin();
    em.persist( poi );
    em.persist( poi2 );
    em.persist( poi3 );
    em.getTransaction().commit();
    em.getTransaction().begin();
    em.persist( poi4 );
    em.persist( poi5 );
    em.persist( poi6 );
    em.getTransaction().commit();

    em.getTransaction().begin();
    double centerLatitude = 24.0d;
    double centerLongitude = 32.0d;

    final QueryBuilder builder = em.getSearchFactory().buildQueryBuilder().forEntity( POI.class ).get();

    org.apache.lucene.search.Query luceneQuery = builder.spatial().onCoordinates( "location" )
        .within( 100, Unit.KM ).ofLatitude( centerLatitude ).andLongitude( centerLongitude ).createQuery();

    FullTextQuery hibQuery = em.createFullTextQuery( luceneQuery, POI.class );
    Sort distanceSort = new Sort( new DistanceSortField( centerLatitude, centerLongitude, "location" ) );
    hibQuery.setSort( distanceSort );
    hibQuery.setProjection( FullTextQuery.THIS, FullTextQuery.SPATIAL_DISTANCE );
    hibQuery.setSpatialParameters( centerLatitude, centerLongitude, "location" );
    List results = hibQuery.getResultList();
    Object[] firstResult = (Object[]) results.get( 0 );
    Object[] secondResult = (Object[]) results.get( 1 );
    Object[] thirdResult = (Object[]) results.get( 2 );
    Object[] fourthResult = (Object[]) results.get( 3 );
    Object[] fifthResult = (Object[]) results.get( 4 );
    Object[] sixthResult = (Object[]) results.get( 5 );
    Assert.assertEquals( (Double) firstResult[1], 0.0, 0.0001 );
    Assert.assertEquals( (Double) secondResult[1], 10.1582, 0.0001 );
    Assert.assertEquals( (Double) thirdResult[1], 11.1195, 0.0001 );
    Assert.assertEquals( (Double) fourthResult[1], 15.0636, 0.0001 );
    Assert.assertEquals( (Double) fifthResult[1], 22.239, 0.001 );
    Assert.assertEquals( (Double) sixthResult[1], 24.446, 0.001 );

    List<?> pois = em.createQuery( "from " + POI.class.getName() ).getResultList();
    for ( Object entity : pois ) {
      em.remove( entity );
    }
    em.getTransaction().commit();
    em.close();
  }
View Full Code Here

    em.close();
  }

  @Test
  public void testDistanceSort2() throws Exception {
    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );

    em.getTransaction().begin();
    int cnt = 0;
    for ( double[] c : new double[][] {
        {41.04389845, -74.06328534},
        {40.64383333, -73.75050000},
        {40.75666667, -73.98650000},
        {40.69416667, -73.78166667},
        {40.75802992, -73.98532391},
        {40.75802992, -73.98532391},
        {50.77687257, 6.08431213},
        {50.78361600, 6.07003500},
        {50.76066667, 6.08866667},
        {50.77683333, 6.08466667},
        {50.77650000, 6.08416667},
    } ) {
      em.persist( new POI( cnt, "Test_" + cnt, c[0], c[1], "" ) );
      ++cnt;
    }
    em.getTransaction().commit();


    em.getTransaction().begin();
    double centerLatitude = 50.7753455;
    double centerLongitude = 6.083886799999959;

    final QueryBuilder builder = em.getSearchFactory().buildQueryBuilder().forEntity( POI.class ).get();

    org.apache.lucene.search.Query luceneQuery = builder.spatial().onCoordinates( "location" )
        .within( 1.8097233616663808, Unit.KM )
          .ofLatitude( centerLatitude )
          .andLongitude( centerLongitude )
        .createQuery();

    FullTextQuery hibQuery = em.createFullTextQuery( luceneQuery, POI.class );
    Sort distanceSort = new Sort( new DistanceSortField( centerLatitude, centerLongitude, "location" ) );
    hibQuery.setSort( distanceSort );
    hibQuery.setMaxResults( 1000 );
    hibQuery.setProjection( FullTextQuery.THIS, FullTextQuery.SPATIAL_DISTANCE );
    hibQuery.setSpatialParameters( centerLatitude, centerLongitude, "location" );
    List<Object[]> results = hibQuery.getResultList();

    for ( Object[] result : results ) {
      POI poi = (POI)result[0];
      String message = poi.getName() + " (" + poi.getLatitude() + ", " + poi.getLongitude() + ") is not at "
          + centerLatitude + ", " + centerLongitude;

      Assert.assertThat( message, ( (Double) result[1] ).doubleValue(), is( not( 0.0 ) ) );
    }

    List<?> pois = em.createQuery( "from " + POI.class.getName() ).getResultList();
    for ( Object entity : pois ) {
      em.remove( entity );
    }
    em.getTransaction().commit();
    em.close();
  }
View Full Code Here

    POI poi3 = new POI( 3, "Distance to 24,32 : 11.12", 23.9d, 32.0d, "" );
    POI poi4 = new POI( 4, "Distance to 24,32 : 15.06", 23.9d, 32.1d, "" );
    POI poi5 = new POI( 5, "Distance to 24,32 : 22.24", 24.2d, 32.0d, "" );
    POI poi6 = new POI( 6, "Distance to 24,32 : 24.45", 24.2d, 31.9d, "" );

    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );

    em.getTransaction().begin();
    em.persist( poi );
    em.persist( poi2 );
    em.persist( poi3 );
    em.getTransaction().commit();
    em.getTransaction().begin();
    em.persist( poi4 );
    em.persist( poi5 );
    em.persist( poi6 );
    em.getTransaction().commit();

    em.getTransaction().begin();
    double centerLatitude = 24.0d;
    double centerLongitude = 32.0d;

    final QueryBuilder builder = em.getSearchFactory().buildQueryBuilder().forEntity( POI.class ).get();

    org.apache.lucene.search.Query luceneQuery = builder.spatial().onCoordinates( "location" ).within( 100, Unit.KM ).ofLatitude( centerLatitude )
        .andLongitude( centerLongitude ).createQuery();

    FullTextQuery hibQuery = em.createFullTextQuery( luceneQuery, POI.class );
    Sort distanceSort = new Sort( new DistanceSortField( centerLatitude, centerLongitude, "location" ) );
    hibQuery.setSort( distanceSort );
    hibQuery.setProjection( FullTextQuery.THIS, FullTextQuery.SPATIAL_DISTANCE );
    // Set max results to 3 when 6 documents are stored:
    hibQuery.setMaxResults( 3 );
    hibQuery.setSpatialParameters( centerLatitude, centerLongitude, "location" );
    List results = hibQuery.getResultList();
    Object[] firstResult = (Object[]) results.get( 0 );
    Object[] secondResult = (Object[]) results.get( 1 );
    Object[] thirdResult = (Object[]) results.get( 2 );
    Assert.assertEquals( (Double) firstResult[1], 0.0, 0.0001 );
    Assert.assertEquals( (Double) secondResult[1], 10.1582, 0.0001 );
    Assert.assertEquals( (Double) thirdResult[1], 11.1195, 0.0001 );

    List<?> pois = em.createQuery( "from " + POI.class.getName() ).getResultList();
    for ( Object entity : pois ) {
      em.remove( entity );
    }
    em.getTransaction().commit();
    em.close();
  }
View Full Code Here

   *
   * @throws Exception in case the test fails.
   */
  @Test
  public void testSerialization() throws Exception {
    FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() );

    indexSearchAssert( em );

    FullTextEntityManager clone = SerializationTestHelper.duplicateBySerialization( em );

    indexSearchAssert( clone );

    clone.close();
    em.close();
  }
View Full Code Here

TOP

Related Classes of org.hibernate.search.jpa.FullTextEntityManager

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.