我正在尝试从索引文档的全文中生成搜索摘录。我正在使用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
。
答案 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 );