2012-04-12 96 views
0

我正在尝试从索引文档的全文中生成搜索摘录。我正在使用Sphinx V2.02。我的狮身人面像索引工作正常,定期结果没有问题。如何使用Sphinx和Sphinx PHP API生成文档摘录?

我将文档从磁盘加载,因此我将load_files设置为TRUE。我已经尝试了文件的Web路径和直接的Linux文件路径。

这是我摘录代码:

$options = array('load_files' => TRUE); 
$docs = array(/files/0/123/123.txt); 
$words = 'gears'; 
$excerpts = $sphinxclient->BuildExcerpts($docs, 'files', $words, $options); 

这里是Sphinx Documentation for Generating Excerpts

BuildExcerpts每次都返回false,而不是返回摘录。发生了什么?我是否应该在常规查询的同时以某种方式执行此操作?对于主查询返回的每个文档,我一直执行BuildExcerpts

回答

1

上面的BuildExcertps代码是正确的。

问题是我的'文件'索引是分布式的,狮身人面像BuildExcerpts调用不喜欢那样。看起来BuildExcerpts实际上只是引用该索引的配置,因此您必须引用实际索引中的一个,而不是BuildExcerpts()调用中的分布式索引。

例如:我将我的文件索引拆分为5个碎片,files_0,files_1等。使用'files'作为我的索引打破了BuildExcerpts。使用files_0或我的任何碎片工作正常。

$options = array('load_files' => TRUE); 
$docs = array(/files/0/123/123.txt); 
$words = 'gears'; 
$excerpts = $sphinxclient->BuildExcerpts($docs, 'files_0', $words, $options);