You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by el...@apache.org on 2013/10/20 23:40:55 UTC
svn commit: r1533995 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java
Author: elyograg
Date: Sun Oct 20 21:40:55 2013
New Revision: 1533995
URL: http://svn.apache.org/r1533995
Log:
SOLR-5042 SOLR-5125 SOLR-5368: mlt.count used incorrectly in MoreLikeThisComponent.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1533995&r1=1533994&r2=1533995&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Sun Oct 20 21:40:55 2013
@@ -111,7 +111,12 @@ Bug Fixes
* SOLR-5359: ZooKeeper client is not closed when it fails to connect to an ensemble.
(Mark Miller, Klaus Herrmann)
-
+
+* SOLR-5042: MoreLikeThisComponent was using the rows/count value in place of
+ flags, which caused a number of very strange issues, including NPEs and
+ ignoring requests for the results to include the score.
+ (Anshum Gupta, Mark Miller, Shawn Heisey)
+
Optimizations
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java?rev=1533995&r1=1533994&r2=1533995&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java Sun Oct 20 21:40:55 2013
@@ -45,7 +45,9 @@ import org.apache.solr.schema.IndexSchem
import org.apache.solr.search.DocIterator;
import org.apache.solr.search.DocList;
import org.apache.solr.search.DocListAndSet;
+import org.apache.solr.search.ReturnFields;
import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.search.SolrReturnFields;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,12 +72,20 @@ public class MoreLikeThisComponent exten
public void process(ResponseBuilder rb) throws IOException {
SolrParams params = rb.req.getParams();
+ ReturnFields returnFields = new SolrReturnFields( rb.req );
+
+ int flags = 0;
+ if (returnFields.wantsScore()) {
+ flags |= SolrIndexSearcher.GET_SCORES;
+ }
+
+ rb.setFieldFlags(flags);
+
if (params.getBool(MoreLikeThisParams.MLT, false)) {
log.debug("Starting MoreLikeThis.Process. isShard: "
+ params.getBool(ShardParams.IS_SHARD));
SolrIndexSearcher searcher = rb.req.getSearcher();
- int mltcount = params.getInt(MoreLikeThisParams.DOC_COUNT, 5);
if (params.getBool(ShardParams.IS_SHARD, false)) {
if (params.get(MoreLikeThisComponent.DIST_DOC_ID) == null) {
if (rb.getResults().docList.size() == 0) {
@@ -86,7 +96,7 @@ public class MoreLikeThisComponent exten
MoreLikeThisHandler.MoreLikeThisHelper mlt = new MoreLikeThisHandler.MoreLikeThisHelper(
params, searcher);
-
+
NamedList<BooleanQuery> bQuery = mlt.getMoreLikeTheseQuery(rb
.getResults().docList);
@@ -105,13 +115,13 @@ public class MoreLikeThisComponent exten
rb.rsp.add("moreLikeThis", temp);
} else {
NamedList<DocList> sim = getMoreLikeThese(rb, rb.req.getSearcher(),
- rb.getResults().docList, mltcount);
+ rb.getResults().docList, flags);
rb.rsp.add("moreLikeThis", sim);
}
} else {
// non distrib case
NamedList<DocList> sim = getMoreLikeThese(rb, rb.req.getSearcher(), rb.getResults().docList,
- mltcount);
+ flags);
rb.rsp.add("moreLikeThis", sim);
}
}