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



我正在尝试从索引文档的全文中生成搜索摘录。 我正在使用狮身人面像V2.02。 我的狮身人面像指数工作正常,常规结果没有问题。

我正在从磁盘加载文档,因此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 );

这是用于生成摘录的狮身人面像文档。

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

上面的 BuildExcertps 代码是正确的。

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

例如:我将文件索引分为 5 个分片、files_0、files_1等。 使用"文件"作为我的索引会破坏构建摘录。 使用 files_0 或我的任何碎片都可以正常工作。

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

最新更新