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 2017/12/01 19:09:03 UTC

[03/14] jena git commit: use get vs getValues in query$; log trace for Lucene dev

use get vs getValues in query$; log trace for Lucene dev

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e1445711
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e1445711
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e1445711

Branch: refs/heads/master
Commit: e14457115e638b33dcd8923f22c2ff3655309ab0
Parents: e2d6b89
Author: Chris Tomlinson <ct...@moonvine.org>
Authored: Fri Nov 24 18:22:58 2017 -0600
Committer: Chris Tomlinson <ct...@moonvine.org>
Committed: Fri Nov 24 18:22:58 2017 -0600

----------------------------------------------------------------------
 .../java/org/apache/jena/query/text/Entity.java |  4 ++
 .../apache/jena/query/text/TextIndexLucene.java | 51 ++++++++++++--------
 2 files changed, 34 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/e1445711/jena-text/src/main/java/org/apache/jena/query/text/Entity.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/Entity.java b/jena-text/src/main/java/org/apache/jena/query/text/Entity.java
index 83e34c6..4ae2577 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/Entity.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/Entity.java
@@ -72,5 +72,9 @@ public class Entity
     public String toString() {
         return id+" : "+map ;
     }
+    
+    public String toStringDetail() {
+        return id+" : "+graph+" : "+language+" : "+datatype+" : "+map ;
+    }
 }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/e1445711/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
index 355e4c7..c4571d3 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
@@ -204,7 +204,10 @@ public class TextIndexLucene implements TextIndex {
 
     @Override public void updateEntity(Entity entity) {
         if ( log.isDebugEnabled() )
-            log.debug("Update entity: " + entity) ;
+            if (log.isTraceEnabled() && entity != null)
+                log.trace("Update entity: " + entity.toStringDetail()) ;
+            else
+                log.debug("Update entity: " + entity) ;
         try {
             updateDocument(entity);
         } catch (IOException e) {
@@ -216,14 +219,17 @@ public class TextIndexLucene implements TextIndex {
         Document doc = doc(entity);
         Term term = new Term(docDef.getEntityField(), entity.getId());
         indexWriter.updateDocument(term, doc);
-        if ( log.isDebugEnabled() )
-            log.debug("updated: "+doc) ;
+        if ( log.isTraceEnabled() )
+            log.trace("updated: "+doc) ;
     }
 
     @Override
     public void addEntity(Entity entity) {
         if ( log.isDebugEnabled() )
-            log.debug("Add entity: " + entity) ;
+            if (log.isTraceEnabled() && entity != null)
+                log.trace("Add entity: " + entity.toStringDetail()) ;
+            else
+                log.debug("Add entity: " + entity) ;
         try {
             addDocument(entity);
         }
@@ -235,8 +241,8 @@ public class TextIndexLucene implements TextIndex {
     protected void addDocument(Entity entity) throws IOException {
         Document doc = doc(entity) ;
         indexWriter.addDocument(doc) ;
-        if ( log.isDebugEnabled() )
-            log.debug("added: "+doc) ;
+        if ( log.isTraceEnabled() )
+            log.trace("added: "+doc) ;
     }
 
     @Override
@@ -245,7 +251,10 @@ public class TextIndexLucene implements TextIndex {
             return;
 
         if ( log.isDebugEnabled() )
-            log.debug("Delete entity: "+entity) ;
+            if (log.isTraceEnabled() && entity != null)
+                log.trace("Delete entity: " + entity.toStringDetail()) ;
+            else
+                log.debug("Delete entity: "+entity) ;
         try {
             Map<String, Object> map = entity.getMap();
             String property = map.keySet().iterator().next();
@@ -430,18 +439,20 @@ public class TextIndexLucene implements TextIndex {
 
         for ( ScoreDoc sd : sDocs ) {
             Document doc = indexSearcher.doc(sd.doc) ;
-            if ( log.isDebugEnabled() )
-                log.debug("query$ found: "+doc) ;
-            String[] values = doc.getValues(docDef.getEntityField()) ;
+            if ( log.isTraceEnabled() )
+                log.trace("query$ found: "+doc) ;
+            String entity = doc.get(docDef.getEntityField()) ;
 
             Node literal = null;
+            // the following is why no literal is bound when the field is included directly
+            // in the query string rather than explicitly as the property argument, except
+            // when the field is the primaryField. There would need to be an analysis of the
+            // query string in order to extract the field name (if any)
             String field = (property != null) ? docDef.getField(property) : docDef.getPrimaryField();
-            String[] lexicals = doc.getValues(field) ;
-            if (lexicals.length > 0) {
-                String lexical = lexicals[0];
-                String[] langs = doc.getValues(docDef.getLangField()) ;
-                if (langs.length > 0) {
-                    String doclang = langs[0];
+            String lexical = doc.get(field) ;
+            if (lexical != null) {
+                String doclang = doc.get(docDef.getLangField()) ;
+                if (doclang != null) {
                     if (doclang.startsWith(DATATYPE_PREFIX)) {
                         String datatype = doclang.substring(DATATYPE_PREFIX.length());
                         TypeMapper tmap = TypeMapper.getInstance();
@@ -454,11 +465,9 @@ public class TextIndexLucene implements TextIndex {
                 }
             }
 
-            for ( String v : values ) {
-                Node n = TextQueryFuncs.stringToNode(v) ;
-                TextHit hit = new TextHit(n, sd.score, literal);
-                results.add(hit) ;
-            }
+            Node subject = TextQueryFuncs.stringToNode(entity) ;
+            TextHit hit = new TextHit(subject, sd.score, literal);
+            results.add(hit) ;
         }
         return results ;
     }