Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

[hibernate-commits] Hibernate SVN: r15336 - in search/trunk:
 src/test/org/hibernate/search/test/analyzer/solr and 1 other
 directory.

hibernate-commits

2008-10-13


Author LoginPost Reply
Author: hardy.ferentschik
Date: 2008-10-13 07:04:49 -0400 (Mon, 13 Oct 2008)
New Revision: 15336

Modified:
 search/trunk/ivy.xml
 search/trunk/pom.xml
 search/trunk/src/test/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java
 search/trunk/src/test/org/hibernate/search/test/analyzer/solr/Team.java
Log:
HSEARCH-232
* Added testcase for snowball analzyer.

Modified: search/trunk/ivy.xml
===================================================================
--- search/trunk/ivy.xml  2008-10-13 09:51:41 UTC (rev 15335)
+++ search/trunk/ivy.xml  2008-10-13 11:04:49 UTC (rev 15336)
@@(protected) @@
     <dependency org="javax.annotation" name="jsr250-api" rev="1.0" conf="default->default"/> <!-- optional -->
     <dependency org="org.apache.solr" name="solr-core" rev="1.3.0" conf="default->default"/>
     <dependency org="org.apache.solr" name="solr-common" rev="1.3.0" conf="default->default"/>
+     <dependency org="org.apache.solr" name="solr-lucene-snowball" rev="1.3.0" conf="default->default"/>
     <!--dependency org="org.hibernate.apache.lucene.solr" name="apache-solr-analyzer" rev="1.3.0" conf="default->default"/-->

     <!-- transitive dependencies -->

Modified: search/trunk/pom.xml
===================================================================
--- search/trunk/pom.xml  2008-10-13 09:51:41 UTC (rev 15335)
+++ search/trunk/pom.xml  2008-10-13 11:04:49 UTC (rev 15336)
@@(protected) @@
        <version>1.3.0</version>
        <optional>true</optional>
     </dependency>
+     <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-lucene-snowball</artifactId>
+        <version>1.3.0</version>
+        <optional>true</optional>
+     </dependency>


     <dependency>

Modified: search/trunk/src/test/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java  2008-10-13 09:51:41 UTC (rev 15335)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/solr/SolrAnalyzerTest.java  2008-10-13 11:04:49 UTC (rev 15336)
@@(protected) @@
// $Id$
package org.hibernate.search.test.analyzer.solr;

-import org.hibernate.search.test.SearchTestCase;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.TermQuery;
+
+import org.hibernate.Transaction;
import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
-import org.hibernate.Transaction;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.index.Term;
+import org.hibernate.search.test.SearchTestCase;

/**
+ * Tests the Solr analyzer creation framework.
+ *
* @author Emmanuel Bernard
+ * @author Hardy Ferentschik
*/
public class SolrAnalyzerTest extends SearchTestCase {
+
+  /**
+   * Tests that the token filters applied to <code>Team</code> are successfully created and used. Refer to
+   * <code>Team</code> to see the exat definitions.
+   *
+   * @throws Exception in case the test fails
+   */
 public void testAnalyzerDef() throws Exception {
+    // create the test instance
   Team team = new Team();
-    team.setDescription( "This is a D\u00E0scription" );
+    team.setDescription( "This is a D\u00E0scription" ); // \u00E0 == � - ISOLatin1AccentFilterFactory should strip of diacritic
   team.setLocation( "Atlanta" );
   team.setName( "ATL team" );
+
+    // persist and index the test object
   FullTextSession fts = Search.getFullTextSession( openSession() );
   Transaction tx = fts.beginTransaction();
   fts.persist( team );
   tx.commit();
   fts.clear();
+
+    // execute several search to show that the right tokenizers were applies
   tx = fts.beginTransaction();
-    TermQuery query = new TermQuery( new Term("description", "D\u00E0scription") );
-    assertEquals( "iso latin filter should work", 0, fts.createFullTextQuery( query ).list().size() );
-    query = new TermQuery( new Term("description", "is") );
-    assertEquals( "stop word filter should work", 0, fts.createFullTextQuery( query ).list().size() );
-    query = new TermQuery( new Term("description", "dascription") );
-    assertEquals( 1, fts.createFullTextQuery( query ).list().size() );
+    TermQuery query = new TermQuery( new Term( "description", "D\u00E0scription" ) );
+    assertEquals(
+        "iso latin filter should work. � should be a now", 0, fts.createFullTextQuery( query ).list().size()
+    );
+
+    query = new TermQuery( new Term( "description", "is" ) );
+    assertEquals(
+        "stop word filter should work. is should be removed", 0, fts.createFullTextQuery( query ).list().size()
+    );
+
+    query = new TermQuery( new Term( "description", "dascript" ) );
+    assertEquals(
+        "snowball stemmer should work. 'dascription' should be stemmed to 'dascript'",
+        1,
+        fts.createFullTextQuery( query ).list().size()
+    );
+
+    // cleanup
   fts.delete( fts.createFullTextQuery( query ).list().get( 0 ) );
   tx.commit();
   fts.close();

Modified: search/trunk/src/test/org/hibernate/search/test/analyzer/solr/Team.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/solr/Team.java  2008-10-13 09:51:41 UTC (rev 15335)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/solr/Team.java  2008-10-13 11:04:49 UTC (rev 15336)
@@(protected) @@
package org.hibernate.search.test.analyzer.solr;

import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
import javax.persistence.Id;
-import javax.persistence.GeneratedValue;

-import org.hibernate.search.annotations.Indexed;
-import org.hibernate.search.annotations.DocumentId;
-import org.hibernate.search.annotations.Field;
-import org.hibernate.search.annotations.AnalyzerDef;
-import org.hibernate.search.annotations.TokenizerDef;
-import org.hibernate.search.annotations.TokenFilterDef;
-import org.hibernate.search.annotations.Parameter;
-import org.hibernate.search.annotations.Analyzer;
-import org.apache.solr.analysis.StandardTokenizerFactory;
import org.apache.solr.analysis.ISOLatin1AccentFilterFactory;
import org.apache.solr.analysis.LowerCaseFilterFactory;
+import org.apache.solr.analysis.SnowballPorterFilterFactory;
+import org.apache.solr.analysis.StandardTokenizerFactory;
import org.apache.solr.analysis.StopFilterFactory;

+import org.hibernate.search.annotations.Analyzer;
+import org.hibernate.search.annotations.AnalyzerDef;
+import org.hibernate.search.annotations.DocumentId;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.annotations.Parameter;
+import org.hibernate.search.annotations.TokenFilterDef;
+import org.hibernate.search.annotations.TokenizerDef;
+
/**
* @author Emmanuel Bernard
*/
@Entity
@Indexed
-@(protected)",
+@(protected)",
   tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
   filters = {
       @TokenFilterDef(factory = ISOLatin1AccentFilterFactory.class),
       @TokenFilterDef(factory = LowerCaseFilterFactory.class),
       @TokenFilterDef(factory = StopFilterFactory.class, params = {
-          @Parameter(name="words", value= "org/hibernate/search/test/analyzer/solr/stoplist.properties" ),
-          @Parameter(name="ignoreCase", value="true")
+            @Parameter(name = "words",
+                value = "org/hibernate/search/test/analyzer/solr/stoplist.properties"),
+            @Parameter(name = "ignoreCase", value = "true")
+        }),
+        @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = {
+            @Parameter(name = "language", value = "English")
       })
-})
+    })
public class Team {
 @Id
 @DocumentId
@@(protected) @@
 @Field
 private String location;

-  @Field @Analyzer(definition = "customanalyzer")
+  @Field
+  @Analyzer(definition = "customanalyzer")
 private String description;

 public Integer getId() {

_______________________________________________
hibernate-commits mailing list
hibernate-commits@(protected)
https://lists.jboss.org/mailman/listinfo/hibernate-commits
©2008 gg3721.com - Jax Systems, LLC, U.S.A.