You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Colin Bartolome (JIRA)" <ji...@apache.org> on 2013/01/30 20:09:12 UTC
[jira] [Created] (SOLR-4389) CloudSolrServer serves all
MoreLikeThis queries from the same collection
Colin Bartolome created SOLR-4389:
-------------------------------------
Summary: CloudSolrServer serves all MoreLikeThis queries from the same collection
Key: SOLR-4389
URL: https://issues.apache.org/jira/browse/SOLR-4389
Project: Solr
Issue Type: Bug
Components: clients - java
Affects Versions: 4.0
Reporter: Colin Bartolome
When using a CloudSolrServer instance to server MoreLikeThis queries, using the workaround mentioned in SOLR-1085, the server serves all queries using the collection specified by the first query, instead of using the one specified by the current query.
Example code:
import java.net.MalformedURLException;
import org.apache.solr.client.solrj.*;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.common.params.*;
public class MoreLikeThisTest
{
public static void main(String[] args)
throws MalformedURLException, SolrServerException
{
CloudSolrServer server = new CloudSolrServer("zookeeper1:2181");
server.connect();
doMoreLikeThisQuery(server, "collection1");
doMoreLikeThisQuery(server, "collection2");
}
private static void doMoreLikeThisQuery(SolrServer server, String collection)
throws SolrServerException
{
SolrQuery solrQuery = new SolrQuery();
solrQuery.set(CoreAdminParams.COLLECTION, collection);
solrQuery.setRequestHandler("/" + MoreLikeThisParams.MLT);
solrQuery.set(MoreLikeThisParams.SIMILARITY_FIELDS, "title");
solrQuery.setQuery("id:1234");
QueryRequest queryRequest = new QueryRequest(solrQuery, SolrRequest.METHOD.POST);
queryRequest.process(server);
}
}
Running this code results in two of my servers serving these requests:
INFO: [collection1] webapp=/solr path=/mlt params={fl=id&mlt.fl=title&q=id:1234&collection=collection1&qt=/mlt&wt=javabin&version=2} status=0 QTime=0
INFO: [collection1] webapp=/solr path=/mlt params={fl=id&mlt.fl=title&q=id:1234&collection=collection2&qt=/mlt&wt=javabin&version=2} status=0 QTime=1
The first collection serves both requests, meaning the second request will just about always return no results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org