我使用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 autoCommit不工作
2- solr-php-client返回文档的nr,而不是已提交文档的nr。
我可能在这里遗漏了一些简单的东西,所以我将非常感谢任何帮助。
无论如何,以下是我对solrconfig.xml所做的工作:
<autoCommit>
<maxDocs>3</maxDocs>
<maxTime>60000</maxTime>
</autoCommit>数字"3“仅用于测试目的,但并不像上面提到的那样工作。
在使用autoCommit时,除了上面的设置之外,我还应该考虑其他设置吗?
在更改solrconfig.xml文件之后,我也重新启动了jetty (我的容器)和solr。
如果你需要更多的输入,请让我知道...
谢谢
发布于 2010-09-20 06:28:11
php solr客户端在这里没有做什么特别的事情,numFound就是Solr本身返回的内容。它应该基于查询时提交的文档。
不过,我对你的问题有点迷惑。您是否抱怨看到文档在您期望的情况下被自动提交?如果是这样的话,您应该以与您相反的方式进行测试-增加autoCommit块中的maxDocs数量。我不确定在触发提交之前,solr本身对它所允许的maxDocs有多近做出了什么保证。典型设置为1,000或10,000,具体取决于您的索引特征。然后,时间通常被用作您愿意等待文档显示在索引中的时间的上限。您正在尝试在效率和延迟之间取得平衡。
在任何情况下,了解到底发生了什么的唯一方法是查看Solr的日志-它将包含添加、查询和提交的条目,您可以看到它们彼此之间的距离有多近或有多远,或者代码中是否存在您不知道的显式提交。
如果您可以使用日志的一部分来更新您的问题,这将有助于您进行诊断。
https://stackoverflow.com/questions/3747492
复制相似问题