Php Sphinx,在setFilter()中使用Or


拥有小太阳的向日葵
2024-12-26 11:06:45 (2月前)
  1. 下面是我对sphinx的获取代码。我们有一个名为typeId的过滤器,用于比较局类型。现在我又添加了一个名为altTypeId的过滤器。现在我必须比较typeIdaltTypeId ...

2 条回复
  1. 0# 生如夏花 | 2019-08-31 10-32



    坦率地说,将两个值放在同一个sphinx属性中,似乎最容易。 MVA非常适合这个!



    可以做几种方式,但只是……




    1. sql_query = SELECT id,title, CONCAT_WS(‘,’,typeId,altTypeId) AS typeids FROM
      sql_attr_multi = uint typeids from field

    2. </code>


    然后就是




    1. ->SetFilter(‘typeids’, array(6));

    2. </code>


    从EITHER列中查找结果。





    否则,如果真的只想在查询时做它,它的东西就像




    1. if ($filter[0] == typeid’) {
      Yii::app()->search->SetSelect(“*, (typeid = {$filter[1]} OR altTypeId = {$filter[1]}) AS myfilter”);
      Yii::app()->search->SetFilter(‘myfilter’, array(1));
      } else

    2. </code>

登录 后才能参与评论