【发布时间】:2015-05-19 20:01:12
【问题描述】:
如何设置 Sphinx 搜索的条件?在我的自定义 MySQL 代码中,如下所示。
如何将其重新编码为 Sphinx 搜索?
$condition = "(CASE WHEN related_type ='Course' THEN related_id = 1
ELSE related_id IN(2,3,4)
END)";
【问题讨论】:
如何设置 Sphinx 搜索的条件?在我的自定义 MySQL 代码中,如下所示。
如何将其重新编码为 Sphinx 搜索?
$condition = "(CASE WHEN related_type ='Course' THEN related_id = 1
ELSE related_id IN(2,3,4)
END)";
【问题讨论】:
SphinxQL 有一个IF() 函数,可以以类似的方式使用。
例如:
SELECT *, IF(related_type='Course', related_id=1, IN(related_id, 2,3,4) ) AS filter
FROM myindex WHERE filter = 1
函数需要在SELECT 部分中,而不是在WHERE 中
(还要注意 IN() 的语法略有不同。在 sphinx 中它是一个函数)
【讨论】:
MATCH(..) 查询。全文查询不能依赖于属性,因此必须确保所有值都存储在字段中。