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) {