You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/01/14 14:45:06 UTC

svn commit: r1558035 - in /jena/trunk/jena-text/src: main/java/org/apache/jena/query/text/ main/java/org/apache/jena/query/text/assembler/ test/java/org/apache/jena/query/text/

Author: andy
Date: Tue Jan 14 13:45:06 2014
New Revision: 1558035

URL: http://svn.apache.org/r1558035
Log:
Don't automatically add the default field; instead, rely on the
Lucene or Solr query to handle default field.
Set the default field in the Solr query.
Add test cases for default field.

Modified:
    jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
    jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
    jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexSolrAssembler.java
    jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithTextIndex.java
    jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java

Modified: jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java?rev=1558035&r1=1558034&r2=1558035&view=diff
==============================================================================
--- jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java (original)
+++ jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java Tue Jan 14 13:45:06 2014
@@ -29,6 +29,7 @@ import org.apache.solr.client.solrj.util
 import org.apache.solr.common.SolrDocument ;
 import org.apache.solr.common.SolrDocumentList ;
 import org.apache.solr.common.SolrInputDocument ;
+import org.apache.solr.common.params.CommonParams ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 
@@ -193,6 +194,8 @@ public class TextIndexSolr implements Te
         else 
             sq.setRows(MAX_N) ;   // The Solr default is 10.
         try {
+            // Set default field.
+            sq.add(CommonParams.DF, docDef.getPrimaryField()) ;
             QueryResponse rsp = solrServer.query( sq ) ;
             SolrDocumentList docs = rsp.getResults();
             return docs ;

Modified: jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java?rev=1558035&r1=1558034&r2=1558035&view=diff
==============================================================================
--- jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java (original)
+++ jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java Tue Jan 14 13:45:06 2014
@@ -214,7 +214,7 @@ public class TextQueryPF extends Propert
             throw new TextIndexException("Change in object list size") ;
 
         Node predicate = null ;
-        String field = docDef.getPrimaryField() ;
+        String field = null ;       // Do not prepend the feild name - rely on default field
         int idx = 0 ;
         Node x = list.get(0) ;
         // Property?

Modified: jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexSolrAssembler.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexSolrAssembler.java?rev=1558035&r1=1558034&r2=1558035&view=diff
==============================================================================
--- jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexSolrAssembler.java (original)
+++ jena/trunk/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexSolrAssembler.java Tue Jan 14 13:45:06 2014
@@ -44,16 +44,16 @@ public class TextIndexSolrAssembler exte
     */
 
     @Override
-    public TextIndex open(Assembler a, Resource root, Mode mode)
-    {
+    public TextIndex open(Assembler a, Resource root, Mode mode) {
         String uri = GraphUtils.getResourceValue(root, pServer).getURI() ;
         SolrServer server ;
-        if ( uri.startsWith("embedded:") )
-        {
+        if ( uri.startsWith("embedded:") ) {
             throw new TextIndexException("Embedded Solr server not supported (change code and dependencies to enable)") ;
 //            String coreName = uri.substring("embedded:".length()) ;
 //            CoreContainer.Initializer initializer = new CoreContainer.Initializer();
-//            CoreContainer coreContainer = initializer.initialize();
+//            CoreContainer coreContainer ;
+//            try { coreContainer = initializer.initialize() ; } 
+//            catch (Exception e) { throw new TextIndexException("Filed to initialize embedded solr", e) ; }
 //            server = new EmbeddedSolrServer(coreContainer, coreName);
         } 
         else if ( uri.startsWith("http://") )

Modified: jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithTextIndex.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithTextIndex.java?rev=1558035&r1=1558034&r2=1558035&view=diff
==============================================================================
--- jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithTextIndex.java (original)
+++ jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/AbstractTestDatasetWithTextIndex.java Tue Jan 14 13:45:06 2014
@@ -89,7 +89,23 @@ public abstract class AbstractTestDatase
                 QUERY_PROLOG,
                 "SELECT ?s",
                 "WHERE {",
-                "    ?s text:query ( rdfs:label 'text') .",
+                "    ?s text:query (rdfs:label  'text') .",
+                "}"
+                );
+        Set<String> expectedURIs = new HashSet<String>();
+        expectedURIs.addAll( Arrays.asList( R_S1 ) ) ;
+        doTestSearch(turtle, queryString, expectedURIs);
+    }
+
+    @Test
+    public void propertyFunctionText_1_dft() {
+        // As before but using default field.
+        final String turtle = PF_DATA ;
+        String queryString = StrUtils.strjoinNL(
+                QUERY_PROLOG,
+                "SELECT ?s",
+                "WHERE {",
+                "    ?s text:query ('text') .",
                 "}"
                 );
         Set<String> expectedURIs = new HashSet<String>();
@@ -114,6 +130,22 @@ public abstract class AbstractTestDatase
     }
 
     @Test
+    public void propertyFunctionText_2_dft() {
+        final String turtle = PF_DATA ;
+        String queryString = StrUtils.strjoinNL(
+                QUERY_PROLOG,
+                "SELECT ?s",
+                "WHERE {",
+                "    ?s text:query ('text') .",
+                "    ?s rdfs:label 'text' .",
+                "}"
+                );
+        Set<String> expectedURIs = new HashSet<String>();
+        expectedURIs.addAll( Arrays.asList( R_S1 ) ) ;
+        doTestSearch(turtle, queryString, expectedURIs);
+    }
+
+    @Test
     public void propertyFunctionText_3() {
         final String turtle = PF_DATA ;
         String queryString = StrUtils.strjoinNL(
@@ -130,6 +162,22 @@ public abstract class AbstractTestDatase
     }
     
     @Test
+    public void propertyFunctionText_3_dft() {
+        final String turtle = PF_DATA ;
+        String queryString = StrUtils.strjoinNL(
+                QUERY_PROLOG,
+                "SELECT ?s",
+                "WHERE {",
+                "    ?s rdfs:label 'text' .",
+                "    ?s text:query ('text') .",
+                "}"
+                );
+        Set<String> expectedURIs = new HashSet<String>();
+        expectedURIs.addAll( Arrays.asList( R_S1 ) ) ;
+        doTestSearch(turtle, queryString, expectedURIs);
+    }
+    
+    @Test
     public void propertyFunctionText_4() {
         final String turtle = PF_DATA ;
         String queryString = StrUtils.strjoinNL(
@@ -222,6 +270,33 @@ public abstract class AbstractTestDatase
 	}
 
     @Test
+    public void testMultipleResults_dft() {
+        String label = "testMultipleResults";
+        final String turtle = StrUtils.strjoinNL(
+                TURTLE_PROLOG,
+                "<" + RESOURCE_BASE + label +"1>",
+                "  rdfs:label '" + label + "1'",
+                ".",
+                "<" + RESOURCE_BASE + label + "2>",
+                "  rdfs:label '" + label + "2'",
+                "."
+                );
+        String queryString = StrUtils.strjoinNL(
+                QUERY_PROLOG,
+                "SELECT ?s",
+                "WHERE {",
+                "    ?s text:query ('" + label + "?' 10 ) .",
+                "}"
+                );
+        Set<String> expectedURIs = new HashSet<String>() ;
+        expectedURIs.addAll( Arrays.asList(
+                "http://example.org/data/resource/" + label + "1",
+                "http://example.org/data/resource/" + label + "2"
+            ));
+        doTestSearch(turtle, queryString, expectedURIs);
+    }
+
+    @Test
 	public void testSearchCorrectField() {
 		String label = "tscf";
 		String label2 = "tscfo";
@@ -292,6 +367,35 @@ public abstract class AbstractTestDatase
 	}
 
     @Test
+    public void testSearchDefaultField_dft() {
+        String label = "testSearchDefaultField";
+        String label2 = "testSearchDefaultFieldOther";
+        final String turtle = StrUtils.strjoinNL(
+                TURTLE_PROLOG,
+                "<" + RESOURCE_BASE + label +"1>",
+                "  rdfs:label '" + label + "1' ; ",
+                "  rdfs:comment '" + label2 + "1' ;",
+                ".",
+                "<" + RESOURCE_BASE + label + "2>",
+                "  rdfs:label '" + label2 + "2' ; ",
+                "  rdfs:comment '" + label + "2' ; ",
+                "."
+                );
+        String queryString = StrUtils.strjoinNL(
+                QUERY_PROLOG,
+                "SELECT ?s",
+                "WHERE {",
+                "    ?s text:query ('" + label + "?' 10 ) .",
+                "}"
+                );
+        Set<String> expectedURIs = new HashSet<String>() ;
+        expectedURIs.addAll( Arrays.asList(
+                "http://example.org/data/resource/" + label + "1"
+            ));
+        doTestSearch("default field:", turtle, queryString, expectedURIs);
+    }
+
+    @Test
 	public void testSearchLimitsResults() {
 		String label = "testSearchLimitsResults";
 		final String turtle = StrUtils.strjoinNL(

Modified: jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java?rev=1558035&r1=1558034&r2=1558035&view=diff
==============================================================================
--- jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java (original)
+++ jena/trunk/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java Tue Jan 14 13:45:06 2014
@@ -31,8 +31,10 @@ import org.junit.runners.Suite.SuiteClas
     TestBuildTextDataset.class
     , TestDatasetWithLuceneTextIndex.class
     , TestDatasetWithLuceneGraphTextIndex.class
+    
     // Embedded solr not supported 
     //, TestDatasetWithEmbeddedSolrTextIndex.class
+    
     , TestSearchBeforeWriteOnDatasetWithLuceneTextIndex.class
     , TestEntityMapAssembler.class
     , TestTextDatasetAssembler.class