狮身人面像搜索 - 按条件从结果中排除

时间:2014-12-08 11:12:47

标签: php sphinx

有没有办法按某种条件执行搜索?

我看到有SetFilter选项,但似乎不是我需要的。

我想排除所有已清空某些列的结果(例如company_title)。但我不知道我可以使用SetFilter(或者我错过了某些内容)来定义它吗?

这就是它看起来像atm:

$results = SphinxSearch::search($search, 'profiles')
                        ->setSelect('id')
                        ->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_ALL)
                        ->limit(65, $skip);

1 个答案:

答案 0 :(得分:0)

嗯,你不能直接,因为狮身人面像索引不知道哪些列是空的(它索引文本内容,而不是缺少内容:)

所以你必须创建一个属性来存储这个事实

sql_query = SELECT id, company_title, IF(company_title='',1,0) AS empty_title, ... 

sql_attr_bool = empty_title

然后你可以将它与setFilter一起使用

->setFilter('empty_title',array(0));