You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gs...@apache.org on 2012/09/18 19:04:31 UTC

svn commit: r1387259 - in /lucene/dev/trunk/solr/core/src: java/org/apache/solr/handler/component/ResponseLogComponent.java test/org/apache/solr/handler/component/ResponseLogComponentTest.java

Author: gsingers
Date: Tue Sep 18 17:04:31 2012
New Revision: 1387259

URL: http://svn.apache.org/viewvc?rev=1387259&view=rev
Log:
SOLR-3825: use unique key

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/ResponseLogComponentTest.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java?rev=1387259&r1=1387258&r2=1387259&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java Tue Sep 18 17:04:31 2012
@@ -17,11 +17,16 @@ package org.apache.solr.handler.componen
  */
 
 import java.io.IOException;
+import java.util.Collections;
+import java.util.Set;
 
+import org.apache.lucene.index.StoredFieldVisitor;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.response.ResultContext;
+import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.search.DocIterator;
 import org.apache.solr.search.DocList;
+import org.apache.solr.search.SolrIndexSearcher;
 
 /**
  * Adds to the log file the document IDs that are sent in the query response.
@@ -62,32 +67,45 @@ public class ResponseLogComponent extend
     SolrParams params = rb.req.getParams();
     if (!params.getBool(COMPONENT_NAME, false)) return;
     
+    IndexSchema schema = rb.req.getSchema();
+    if (schema.getUniqueKeyField() == null) return;
+
     ResultContext rc = (ResultContext) rb.rsp.getValues().get("response");
+    SolrIndexSearcher searcher = rb.req.getSearcher();    
+    
     if (rc.docs.hasScores()) {
-      processScores(rb, rc.docs);
+      processScores(rb, rc.docs, schema, searcher);
     } else {
-      processIds(rb, rc.docs);
+      processIds(rb, rc.docs, schema, searcher);
     }
   }
 
-  protected void processIds(ResponseBuilder rb, DocList dl) {
+  protected void processIds(ResponseBuilder rb, DocList dl, IndexSchema schema,
+      SolrIndexSearcher searcher) throws IOException {
+    
     StringBuilder sb = new StringBuilder();
+
+    Set<String> fields = Collections.singleton(schema.getUniqueKeyField().getName());
     for(DocIterator iter = dl.iterator(); iter.hasNext();) {
-        sb.append(iter.nextDoc())
-          .append(',');
+
+      sb.append(schema.printableUniqueKey(searcher.doc(iter.nextDoc(), fields)))
+        .append(',');
     }
     if (sb.length() > 0) {
       rb.rsp.addToLog("responseLog", sb.substring(0, sb.length() - 1));
     }  
   }
   
-  protected void processScores(ResponseBuilder rb, DocList dl) {
+  protected void processScores(ResponseBuilder rb, DocList dl, IndexSchema schema,
+      SolrIndexSearcher searcher) throws IOException {
+    
     StringBuilder sb = new StringBuilder();
+    Set<String> fields = Collections.singleton(schema.getUniqueKeyField().getName());
     for(DocIterator iter = dl.iterator(); iter.hasNext();) {
-        sb.append(iter.nextDoc())
-          .append(':')
-          .append(iter.score())
-          .append(',');
+      sb.append(schema.printableUniqueKey(searcher.doc(iter.nextDoc(), fields)))
+        .append(':')
+        .append(iter.score())
+        .append(',');
     }
     if (sb.length() > 0) {
       rb.rsp.addToLog("responseLog", sb.substring(0, sb.length() - 1));
@@ -104,4 +122,4 @@ public class ResponseLogComponent extend
     return "$URL$";
   }
   
-}
\ No newline at end of file
+}

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/ResponseLogComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/ResponseLogComponentTest.java?rev=1387259&r1=1387258&r2=1387259&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/ResponseLogComponentTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/ResponseLogComponentTest.java Tue Sep 18 17:04:31 2012
@@ -30,7 +30,7 @@ public class ResponseLogComponentTest ex
   public static void beforeTest() throws Exception {
     initCore("solrconfig-response-log-component.xml","schema12.xml");
     assertNull(h.validateUpdate(adoc("id", "1", "subject", "aa")));
-    assertNull(h.validateUpdate(adoc("id", "2", "subject", "aa")));
+    assertNull(h.validateUpdate(adoc("id", "two", "subject", "aa")));
     assertNull(h.validateUpdate(adoc("id", "3", "subject", "aa")));
     assertU(commit());
   }
@@ -46,11 +46,9 @@ public class ResponseLogComponentTest ex
       NamedList<Object> entries = qr.getToLog();
       String responseLog = (String) entries.get("responseLog");
       assertNotNull(responseLog);
-      assertTrue(responseLog.matches("\\d+,\\d+"));
+      assertTrue(responseLog.matches("\\w+,\\w+"));
     } finally {
-      if (req != null) {
-        req.close();
-      }
+      req.close();
     }
   }
 
@@ -65,11 +63,9 @@ public class ResponseLogComponentTest ex
       NamedList<Object> entries = qr.getToLog();
       String responseLog = (String) entries.get("responseLog");
       assertNotNull(responseLog);
-      assertTrue(responseLog.matches("\\d+:\\d+\\.\\d+,\\d+:\\d+\\.\\d+"));
+      assertTrue(responseLog.matches("\\w+:\\d+\\.\\d+,\\w+:\\d+\\.\\d+"));
     } finally {
-      if (req != null) {
-        req.close();
-      }
+      req.close();
     }
   }
   
@@ -85,9 +81,7 @@ public class ResponseLogComponentTest ex
       String responseLog = (String) entries.get("responseLog");
       assertNull(responseLog);
     } finally {
-      if (req != null) {
-        req.close();
-      }
+      req.close();
     }    
   }
 }