如何在solr中执行分布式搜索

如何在solr中执行分布式搜索,solr,lucene,Solr,Lucene,我正在不同机器上的4台不同的Solr服务器上进行Solr内部的分布式搜索。我已经将我的类扩展到查询,我想执行分布式搜索。我已经使用solrj创建了一个solr查询。但当我向solr进行查询时,有时会给出正确的结果,有时则不正确。只有当一些碎片抛出查询解析异常时,它才会给出错误的结果。所以我的问题是我可以在solr中执行分布式搜索吗。我正在进行分布式solr搜索的班级大纲如下所示 public class CutomClass extends Query { // some other c

我正在不同机器上的4台不同的Solr服务器上进行Solr内部的分布式搜索。我已经将我的类扩展到查询,我想执行分布式搜索。我已经使用solrj创建了一个solr查询。但当我向solr进行查询时,有时会给出正确的结果,有时则不正确。只有当一些碎片抛出查询解析异常时,它才会给出错误的结果。所以我的问题是我可以在solr中执行分布式搜索吗。我正在进行分布式solr搜索的班级大纲如下所示

public class CutomClass extends Query {
    // some other code....
    public Weight createWeight(IndexSearcher searcher1) throws IOException {
         SolrQuery query = new SolrQuery();
         query.setQuery("*:*");
         query.add(ShardParams.SHARDS, getShards);
         query.setStart(0);
         query.setRows(0);
         query.set("sort", "score desc");       
         query.setFacet(true);
         query.addFacetField("CLIENT");
         query.setFacetMinCount(1);
         QueryResponse queryResponse = solrServer.query(query, SolrRequest.METHOD.POST);
    }
    // some other code....
}
有时它会在某些碎片上出现以下解析异常,结果不正确


org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:org.apache.solr.search.SyntaxError:org.apache.lucene.queryParser.ParseException:无法解析“:”:在第1行第0列遇到。

是的,可以在solr中执行分布式搜索。如果您使用单个集合(比如collection1)并使用以下Solr URL创建solrServer对象,那么默认情况下您正在执行分布式搜索

http://localhost:8983/solr/collection1/select?
此URL允许您跨collection1中的所有碎片进行查询,无论它们是在同一台计算机中还是在不同的计算机中。但是,如果您有单独的集合,并且希望在这些集合中进行搜索,请遵循

要了解有关分布式搜索的更多信息,请查看

您可以简单地对以下行进行注释

query.add(ShardParams.SHARDS, getShards);
是的,*:*并不像D.Kasipovic所说的那样是你程序中有问题的部分。查询可以包含:。您需要提供类似字段:text的查询。文本部分具有以下内容时出现问题:。然后你需要逃跑:通过\::


请修改URL以进行分布式搜索,然后让我们知道发生了什么。

当您收到该错误时,您会发送什么查询?如果查询包含:则需要转义,因为:是字段:文本分隔符。编辑:Nvm,我刚看到你的编辑。