[
https://issues.apache.org/jira/browse/SOLR-4389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Colin Bartolome updated SOLR-4389:
----------------------------------
Description:
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:
{code:java}
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);
}
}
{code}
Running this code results in two of my servers serving these requests:
{noformat}
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
{noformat}
The first collection serves both requests, meaning the second request will just
about always return no results.
was:
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.
> 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:
> {code:java}
> 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);
> }
> }
> {code}
> Running this code results in two of my servers serving these requests:
> {noformat}
> 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
> {noformat}
> 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: [email protected]
For additional commands, e-mail: [email protected]