Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Sphinx中的一个索引中使用多个源?_Php_Mysql_Search_Configuration_Sphinx - Fatal编程技术网

Php 如何在Sphinx中的一个索引中使用多个源?

Php 如何在Sphinx中的一个索引中使用多个源?,php,mysql,search,configuration,sphinx,Php,Mysql,Search,Configuration,Sphinx,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]

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_事件和iwa_出版物。两者都有唯一的id列,并且两个源在单独索引时都可以工作。

如果要同时搜索多个索引,必须在PHP代码中指定它们,而不是在配置文件中指定

只需在
查询
方法中分离索引(请参阅):

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

问题发现:我误解了有多个来源的观点。看起来,在一个索引中确实可以使用多个源,但前提是它们在模式方面是相同的,正如文档中的这一行所示:

“源架构必须相同才能存储在同一索引中。”


非常感谢你的帮助,简。误会是我的错是的。源模式必须相同;但您只需要相同数量的字段。
如果需要,您甚至可以使用同一字段两次。只需在所有查询中给字段相同的名称:
sql\u query=select id,catname为一,country为二,currency为三,language为四,从catalog

我希望只存储一个包含多个源的索引,根据配置文件,这似乎是受支持的。还是我大错特错了?:)完成,如果我最初的解释不够清楚,很抱歉。:)啊,我想我已经找到了它不起作用的原因:“源模式必须是相同的,才能存储在同一个索引中。”哎呀,完全错过了这一行!
$cl->Query ( "test query", "index1 index2" );