如何通过id查询特定文档

时间:2014-07-22 17:41:45

标签: solr

从之前的查询中,我已经拥有了我感兴趣的文档的文档ID(此架构中的 uniqueKey 是' track_id)。 然后我想在突出显示匹配时查询该文档上的一系列单词。

我似乎无法以成功的方式组合搜索参数(我所有的谷歌搜索都会回复紫色:\),尽管过去几天我已经尝试了很多组合。我也知道匹配的字段,如果在提高匹配速度方面有任何用处。

我猜它应该是这样的:

/select?q=track_id:{key_i_already_have} AND/&/{part_I_dont_know} word1 word2 word3

目前,由于我无法将这两个搜索参数组合在一起,因此我只查询单词,从而从多个文档中获取多个结果。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以尝试为ID应用过滤查询。因此,它会将您的搜索查询过滤为该ID,然后在该文档中搜索所有关键字,并突出显示它们。

您的查询将如下所示:

/select?fq=track_id:DOC_ID&q=word1 word2 word3

只需确保您的" id" schema.xml中的字段定义为要对其应用过滤器查询的类型字符串。

<field name="id" type="string" indexed="true" stored="true" required="true" />

答案 1 :(得分:1)

从Solr 4你可以使用realtime get,这比通过id搜索索引要快得多。

Last-Modified
  

要使索引更新可见(可搜索),某种提交必须重新打开搜索器到索引的新时间点视图。实时获取功能允许(通过唯一键)检索任何文档的最新版本,而无需重新打开搜索者的相关成本。当使用Solr作为NoSQL数据存储而不仅仅是搜索索引时,这非常有用。