【问题标题】:How do I use multiple sources in one index in Sphinx?如何在 Sphinx 的一个索引中使用多个源?
【发布时间】:2011-01-02 21:11:04
【问题描述】:

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

这是配置文件中的 sn-p:

# 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

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

使用第二个代码 sn-p 我得到以下错误:

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

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

【问题讨论】:

    标签: php mysql search configuration sphinx


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      非常感谢 Jan 的帮助。这对我造成了误解。 :D

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

        • 我希望只存储一个包含多个源的索引 - 根据配置文件似乎支持。还是我大错特错了? :)
        • 完成,如果我最初的解释不够清楚,请见谅。 :)
        • 啊,我想我已经弄清楚为什么它不起作用了:“源模式必须相同才能存储在同一个索引中。”哎呀,完全错过了这条线!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        • 1970-01-01
        相关资源
        最近更新 更多