如何使用Sphinx和Sphinx PHP API生成文档摘录?

时间:2012-04-12 01:15:02

标签: search sphinx

我正在尝试从索引文档的全文中生成搜索摘录。我正在使用Sphinx V2.02。我的Sphinx索引工作正常,常规结果没问题。

我正在从磁盘上加载文档,因此我将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 个答案:

答案 0 :(得分:1)

上面的BuildExcertps代码是正确的。

问题是我的'文件'索引是分布式的,而且Sphinx 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 );