Java 使用SolrIndexSearcher进行ids查询

Java 使用SolrIndexSearcher进行ids查询,java,solr,lucene,Java,Solr,Lucene,我想对SolrIndexSearcher执行ids查询,使用它们的ID从solr获取多个文档—类似于对SolrServer q=:&ids=ID1、ID2&fl=* 我试着用几种方法调用searchQuery,int,但没有成功 i、 e 结果总是空的 谢谢您可以使用q=ids:ID1或ID2搜索ID。 您还可以使用筛选器查询q=*:*&fq=ids:ID1或ID2,这是一种性能良好的方法,因为它利用了筛选器缓存。您不能在fq中使用ids,它会返回未定义的字段ID errorWho这么说!!!!

我想对SolrIndexSearcher执行ids查询,使用它们的ID从solr获取多个文档—类似于对SolrServer q=:&ids=ID1、ID2&fl=*

我试着用几种方法调用searchQuery,int,但没有成功 i、 e

结果总是空的

谢谢

您可以使用q=ids:ID1或ID2搜索ID。
您还可以使用筛选器查询q=*:*&fq=ids:ID1或ID2,这是一种性能良好的方法,因为它利用了筛选器缓存。

您不能在fq中使用ids,它会返回未定义的字段ID errorWho这么说!!!!!!Ids可用于任何地方的筛选、排序、范围搜索。检查您是否定义了一个Id为的字段。此答案是通用的。在您投票否决一个有效并接受的答案之前,请检查您的设置!!!它在solr5x上不起作用,使用cloud,返回我提到的错误消息,但是,如果您将id作为一个普通的参数项放在url中,那么您只能从索引中检索那些id。。。您可以查看solr/lucene邮件列表以了解更多信息,也可以查看我自己的邮件以查看详细信息,带有ID的fq绝对不工作定义字段ID->明确说明没有带有名称ID的字段。这是一个通用字段,应该可以工作,因为这是一个基本功能。当然,答案并没有考虑到未来的版本!!
TopDocs results = this.indexSearcher.search(QueryParsing.parseQuery("q=\\*\\:\\*&ids=ID1,ID2&fl=*", this.indexSearcher.getSchema()) , MAX_DOCUMENTS);