【问题标题】:Solr autoCommit not workingSolr 自动提交不起作用
【发布时间】:2011-04-14 10:23:37
【问题描述】:

我正在使用 Solr-php-client 通过 php 与 solr 进行通信。

我使用这个 php-client 搜索 solr,在我从 Solr 获得的其他信息中,总结果返回到 php 中的一个变量:

$results = $solr->search($querystring, $start_offset, $limit, $solr_params);
$num_total = (int) $results->response->numFound;

我的问题是,当我将文档添加到 Solr 而不提交它时,$num_total 无论如何都会增加。所以这意味着两件事之一,或两者兼而有之:

1- Solr 自动提交不起作用
2- solr-php-client 返回 nr 个文档而不是 nr 个已提交文档。

我可能在这里遗漏了一些简单的东西,所以我将不胜感激。

无论如何,这就是我对 solrconfig.xml 所做的:

  <autoCommit> 
    <maxDocs>3</maxDocs>
    <maxTime>60000</maxTime> 
  </autoCommit>

数字“3”仅用于测试目的,但并没有像上面提到的那样起作用。

在使用 autoCommit 时,除了以上这些我还应该考虑其他设置吗?

在更改 solrconfig.xml 文件后,我也重新启动了 jetty(我的容器)和 solr。

如果您需要更多信息,请告诉我...

谢谢

【问题讨论】:

    标签: java php database search solr


    【解决方案1】:

    php solr 客户端在这里没有做任何特别的事情,numFound 正是 Solr 本身返回的。这应该基于查询时提交的文档。

    我对你的问题有点困惑。您是否抱怨您看到文档在您期望它们之前被自动提交?如果是这样,您应该以与您相反的方式进行测试 - 增加 autoCommit 块中的 maxDocs 数量。我不确定在触发提交之前 solr 本身对 maxDocs 的允许程度有什么保证。典型设置为 1,000 或 10,000,具体取决于您的索引特征。然后时间通常用作您愿意等待文档出现在索引中多长时间的上限。您正试图在效率和延迟之间取得平衡。

    在任何情况下,了解正在发生的事情的唯一方法是查看 Solr 的日志 - 它将包含添加、查询和提交的条目,您可以看到有多接近或者它们彼此相距甚远,或者如果在代码中存在您不知道的明确提交。

    如果您可以使用该日志的一部分更新您的问题,这将有助于您进行诊断。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2011-09-25
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多