【问题标题】:solr-api accessing document field is taking a lot of timesolr-api 访问文档字段需要很多时间
【发布时间】:2016-05-23 10:49:26
【问题描述】:

我正在尝试访问自定义请求处理程序中的字段。我对每个文档都像这样访问它:

Document doc;
doc = reader.document(id);
DocFields = doc.getValues("state");

solr 中有大约 600,000 个文档。对于在所有文档上运行的查询,需要超过 65 秒。

我也尝试过SolrIndexSearcher.doc 方法,但也需要大约 60 秒。

删除上面的代码行将 qtime 降低到毫秒。但是,我需要为我的算法访问该字段。

有没有更优化的方法来做到这一点?

【问题讨论】:

    标签: search solr solr4 requesthandler


    【解决方案1】:

    您似乎一次查询一个文档很慢。 如果您需要查询所有文档,请尝试查询*:*(而不是要求特定的 id),然后遍历结果。

    【讨论】:

    • 我已经在查询中使用了*:*。在“自定义请求处理程序”中,我需要每个文档的特定字段值来实现我的算法。如上所述,为每个文档获取该字段值的函数调用花费了太多时间。
    • 您正在查询代码中的特定 id。您不能在您的 Java 代码中迭代 Solr 返回给您的内容吗?
    • 不,我不能。正如我已经提到的,我需要在自定义处理程序中使用它来在文档上运行我的算法。在自定义处理程序中,solr 仅返回 Id 和文档分数。我正在尝试访问另一个字段(每个文档可能有不同的值),这是算法工作的要求。
    • 请发布您的自定义处理程序和周围的 Java 代码。
    猜你喜欢
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2020-03-19
    • 2018-05-21
    • 1970-01-01
    相关资源
    最近更新 更多