You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by yo...@apache.org on 2008/10/28 18:56:12 UTC

svn commit: r708621 - /lucene/solr/trunk/src/java/org/apache/solr/handler/component/TermVectorComponent.java

Author: yonik
Date: Tue Oct 28 10:56:12 2008
New Revision: 708621

URL: http://svn.apache.org/viewvc?rev=708621&view=rev
Log:
SOLR-651: fix - get the searcher and schema from the request instead of the core

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/handler/component/TermVectorComponent.java

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/component/TermVectorComponent.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/component/TermVectorComponent.java?rev=708621&r1=708620&r2=708621&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/component/TermVectorComponent.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/component/TermVectorComponent.java Tue Oct 28 10:56:12 2008
@@ -107,30 +107,26 @@
       DocList list = listAndSet.docList;
       iter = list.iterator();
     }
-    SolrCore core = rb.req.getCore();
-    RefCounted<SolrIndexSearcher> searcher = core.getSearcher();
-    try {
-      IndexReader reader = searcher.get().getReader();
-      //the TVMapper is a TermVectorMapper which can be used to optimize loading of Term Vectors
-      TVMapper mapper = new TVMapper(fields, reader, termFreq, positions, offsets, idf, tfIdf);
-      IndexSchema schema = core.getSchema();
-      String uniqFieldName = schema.getUniqueKeyField().getName();
-      //Only load the id field
-      SetBasedFieldSelector fieldSelector = new SetBasedFieldSelector(Collections.singleton(uniqFieldName), Collections.emptySet());
-      while (iter.hasNext()) {
-        Integer docId = iter.next();
-        NamedList docNL = new NamedList();
-        termVectors.add("doc-" + docId, docNL);
-        mapper.docNL = docNL;
-        Document document = reader.document(docId, fieldSelector);
-        String uniqId = document.get(uniqFieldName);
-        docNL.add("uniqueKey", uniqId);
-        reader.getTermFreqVector(docId, mapper);
-      }
-      termVectors.add("uniqueKeyFieldName", uniqFieldName);
-    } finally {
-      searcher.decref();
+    SolrIndexSearcher searcher = rb.req.getSearcher();
+
+    IndexReader reader = searcher.getReader();
+    //the TVMapper is a TermVectorMapper which can be used to optimize loading of Term Vectors
+    TVMapper mapper = new TVMapper(fields, reader, termFreq, positions, offsets, idf, tfIdf);
+    IndexSchema schema = rb.req.getSchema();
+    String uniqFieldName = schema.getUniqueKeyField().getName();
+    //Only load the id field
+    SetBasedFieldSelector fieldSelector = new SetBasedFieldSelector(Collections.singleton(uniqFieldName), Collections.emptySet());
+    while (iter.hasNext()) {
+      Integer docId = iter.next();
+      NamedList docNL = new NamedList();
+      termVectors.add("doc-" + docId, docNL);
+      mapper.docNL = docNL;
+      Document document = reader.document(docId, fieldSelector);
+      String uniqId = document.get(uniqFieldName);
+      docNL.add("uniqueKey", uniqId);
+      reader.getTermFreqVector(docId, mapper);
     }
+    termVectors.add("uniqueKeyFieldName", uniqFieldName);
   }
 
   private List<Integer> getInts(String[] vals) {