【问题标题】:Avoiding Two Queries in Solr在 Solr 中避免两个查询
【发布时间】:2014-04-15 10:49:05
【问题描述】:

最近,我问了一个问题,关于如何检索所有术语的 docid(倒排索引)。请参考this question

现在使用查询,

http://localhost:8983/solr/terms?terms.fl=tags&terms.sort=index


    <response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
</lst>
<lst name="terms">
<lst name="tags">
<int name="AbRam">2</int>
<int name="Amitabh">2</int>
<int name="Anjaam">2</int>
<int name="Aryan">2</int>
<int name="Baazigar">2</int>
<int name="Bachchan">2</int>
<int name="Barry">2</int>
<int name="Biography">2</int>
<int name="Bollywood">2</int>
<int name="Chakde">2</int>
</lst>
</lst>
</response>

现在,为了找出所有这些术语的文档 ID,我将使用 solrj 对 solr-index 进行搜索。我当然确定我不需要查询两次,但找不到任何其他解决方案。是否可以使用 Lucene 库(我正在尝试使用 Lucene 访问 solr 索引,以查看是否可以检索与所有术语对应的 docid。)?

【问题讨论】:

    标签: java solr lucene solrj


    【解决方案1】:

    我对此并不完全确定,但我最近也尝试过,并且不相信开箱即用的 terms 组件可以做到这一点。欲了解更多信息,请关注this 链接。

    它说它直接使用 Lucene 的 TermEnum 来迭代术语字典。我确实认为您可以尝试深入研究源代码并构建一个组件来完成您想要完成的工作(我也看过您之前的帖子)。

    我自己从未深入研究过 Solr 的源代码,但查看一些 API 页面,应该相当容易。使用TermEnum 可以轻松访问所有条款。通过这些Terms 访问它们所属的文档应该相当容易。(请注意,这纯粹是假设,我对 Solr 源代码中的编码扩展没有任何经验)

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多