【问题标题】:How is a sphinxql query evaluated / interpretated?如何评估/解释 sphinxql 查询?
【发布时间】:2026-01-31 19:05:01
【问题描述】:

假设我有一个名为“worldcities”的狮身人面像索引,其中包含以下字段/属性:

country_id # int 属性

城市#文本字段

accent_city # 文本字段

然后我运行以下 sphinxql 查询:

SELECT * FROM worldcities WHERE country_id = 16 AND MATCH((@(city,accent_city) "New Yor*"))

sphinx 如何评估查询?: 是不是先搜索所有记录,然后按count_id过滤结果: "给我所有以 'New Yor' 开头的结果并按 country_id 过滤它们"?

还是先按国家/地区 id 过滤,然后通过结果进行搜索: “给我所有 count_id = 16 的结果,然后在其中搜索”?

希望我说清楚

【问题讨论】:

    标签: sphinx


    【解决方案1】:

    “给我所有以'New Yor'开头的结果并按country_id过滤它们”

    这个。

    全文查询首先运行。然后过滤器“排除”不需要的匹配项。

    顺便说一句,您的查询缺少一些引号,应该是

    MATCH('@(city,accent_city) "New Yor*"')
    

    Match 函数接受一个字符串。

    【讨论】:

    • 是的,我最终想通了。这不是生产查询,只是一个示例。感谢您的回答。