使用 solrj 仅在特定文档中查找结果
Use solrj to look for results within only specific documents
我有一个 solr 服务器并使用 solrj 查询它。假设我只想在特定文档中搜索结果,并且我有我想要查看的文档的 ID。如何将查询配置为仅来自指定文档列表的 return 个结果?
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);
我需要做什么才能使查询 return 的所有文档都是其 ID 在可接受文档列表中的文档?
我用得不多 solrj
,但它应该像添加过滤器查询一样简单(我假设您不希望文档是否可以接受影响分数)文档列表,例如:
String filterQuery = "id:(1 OR 2 OR 3)";
this.query.addFilterQuery(filterQuery);
因此您需要将 documentList
转换为由 OR
分隔的字符串(是的,我相信它必须是大写的)。
如果可接受文档的数量确实很大,那么您将不得不更改您的 Solr 配置以允许在查询中使用更多的布尔项(我认为默认值为 512,或者 1024;但我使用 32768 没问题。
我有一个 solr 服务器并使用 solrj 查询它。假设我只想在特定文档中搜索结果,并且我有我想要查看的文档的 ID。如何将查询配置为仅来自指定文档列表的 return 个结果?
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);
我需要做什么才能使查询 return 的所有文档都是其 ID 在可接受文档列表中的文档?
我用得不多 solrj
,但它应该像添加过滤器查询一样简单(我假设您不希望文档是否可以接受影响分数)文档列表,例如:
String filterQuery = "id:(1 OR 2 OR 3)";
this.query.addFilterQuery(filterQuery);
因此您需要将 documentList
转换为由 OR
分隔的字符串(是的,我相信它必须是大写的)。
如果可接受文档的数量确实很大,那么您将不得不更改您的 Solr 配置以允许在查询中使用更多的布尔项(我认为默认值为 512,或者 1024;但我使用 32768 没问题。