使用solrj仅在特定文档中查找结果

时间:2015-01-07 00:46:35

标签: solr solrj

我有一个solr服务器并使用solrj查询它。假设我只想在特定文档中搜索结果,并且我有我想要查看的文档的ID。如何将查询配置为仅返回指定文档列表中的结果?

    List<String> documentList = ...; // collection of Strings of the 
                                     // ID's of the documents I want 
                                     // to look for
    this.query = new SolrQuery();
    this.query.setFields("id", "score");
    this.query.addSort("score", SolrQuery.ORDER.desc);
    this.query.addSort("id", SolrQuery.ORDER.desc);
    this.query.setQuery(searchString);

我需要做什么才能使查询返回的所有文档都是id在可接受文档列表中的文档?

1 个答案:

答案 0 :(得分:1)

我没有多少使用solrj,但它应该像添加过滤器查询一样简单(我假设您不希望文档是否可以影响分数)与文档列表一样,例如:

String filterQuery = "id:(1 OR 2 OR 3)";
this.query.addFilterQuery(filterQuery);

因此,您需要将documentList转换为由OR分隔的字符串(是的,我相信它必须是大写的)。

如果可接受文档的数量非常大,那么您必须更改Solr配置以允许查询中有更多布尔项(我认为默认值为512,或者可能是1024;但是我已经使用32768没有问题了。