4

Sphinx 配置文件提示它支持一个索引的多个源,我如何实际指定它?

这是配置文件中的片段:

# document source(s) to index
# multi-value, mandatory
# document IDs must be globally unique across all sources
source                  = src1

我尝试将其设置为以下格式:

source = src1, src2
source = [src1, src2]

我也尝试过两次使用源变量,例如:

source = src1
source = src2

我怀疑我只是个傻瓜,因为我不确定在配置文件中使用的语法。有任何想法吗?

使用第二个代码片段我得到以下错误:

ERROR: index 'iwa': fulltext fields count mismatch (me=iwa_publications, in=iwa_events, myfields=3, infields=8).

这两个来源是 iwa_events 和 iwa_publications。两者都有唯一的 id 列,并且两个源都在单独索引时工作。

4

3 回答 3

1

如果您想一次搜索多个索引,您必须在 PHP 代码中指定它们,而不是在配置文件中。

Query只需在您的方法中分离索引(请参阅文档):

$cl->Query ( "test query", "index1 index2" );

根据文档你可以。您的第二个代码段是列出多个来源的正确格式。请编辑您的问题,告诉我们您的实际问题是什么。

于 2010-01-08T11:10:05.387 回答
1

发现的问题:我误读了拥有多个来源的观点。看起来确实可以在一个索引中使用多个源,但前提是它们在架构方面是相同的,根据文档中的这一行:

“源模式必须相同才能存储在同一个索引中。”

非常感谢 Jan 的帮助。这对我的误解很不利。:D

于 2010-01-08T11:35:00.580 回答
1

是的。源模式必须相同;但您只需要相同数量的字段。如果需要,您甚至可以使用相同的字段两次。只需在所有查询中为字段提供相同的名称:sql_query = select id, catname as one, country as two, currency as three, language as four from catalog

于 2011-12-27T10:41:50.760 回答