在Sphinx查询中使用自定义变量
我需要按一个队列执行2个查询,并将第一个查询的结果传递给其他查询以及普通MySQL查询的IF表达式 例如,我尝试将@average变量传递到第二个查询:在Sphinx查询中使用自定义变量,sphinx,sphinxql,Sphinx,Sphinxql,我需要按一个队列执行2个查询,并将第一个查询的结果传递给其他查询以及普通MySQL查询的IF表达式 例如,我尝试将@average变量传递到第二个查询: SET @average=(SELECT AVG(weight()) avg_rank FROM common WHERE match('query text') OPTION ranker=expr('sum(word_count)*100 + sum(lcs*user_weight)*100 + bm25 + sum(exact_orde
SET @average=(SELECT AVG(weight()) avg_rank FROM common WHERE match('query text') OPTION ranker=expr('sum(word_count)*100 + sum(lcs*user_weight)*100 + bm25 + sum(exact_order)*200');
SELECT *, weight() as rank, 2000 * exp( - 9.594E-5 * abs(1486121357 - _rank_date)/1000) AS date_rank, IF(_importance > @average,_importance,0) AS importance_rank, (rank + date_rank + importance_rank) as total_rank FROM common WHERE match('query text') OPTION ranker=expr('sum(word_count)*100 + sum(lcs*user_weight)*100 + bm25 + sum(exact_order)*200')
但我有一个解析错误。我怎么能做到呢?别以为你能在斯芬克斯身上做到这一点 应用程序只需运行第一个查询,捕获值,并将其显式写入第二个查询 但是,表达式jsut似乎也会修改返回的内容(而不是说重新排序或过滤结果),因此,与其让sphinx计算IF表达式,不如在应用程序中执行它