【问题标题】:sphinx reset one filter only狮身人面像只重置一个过滤器
【发布时间】:2012-03-12 18:02:59
【问题描述】:

我有狮身人面像对象。我得到了狮身人面像的所有结果。现在我需要再次运行搜索而不重置整个对象。我只需要重置一个过滤器。

这是我需要重置的过滤器 $sphinx->SetFilter("cid", $category_ids);

如何只重置一个过滤器。我需要从过滤器中完全删除旧值。

【问题讨论】:

  • $sphinx->ResetFilters();不适合你?
  • 对这个如此修改的狮身人面像对象没有任何功能 foreach ($sb_sphinx->_filters as $key=>$filter) { if($filter['attr'] == sb_cid) { unset($ sb_sphinx->_filters[$key]); } }
  • 您应该发表您的评论作为答案。然后,您可以接受答案(甚至是您自己的),以便将问题标记为已回答。

标签: php filter sphinx reset


【解决方案1】:

将此添加到您的 SphinxClient 类中

<?php
   function RemoveFilter ( $attribute )
   {
      assert ( is_string($attribute) );

      foreach($this->_filters AS $key => $filter){
         if($filter['attr'] == $attribute){
            unset($this->_filters[$key]);
            break;
         }
      }
   }
?>

然后运行$SphinxClient-&gt;RemoveFilter('your filter'); 删除过滤器。

【讨论】:

  • 嗨,我通过 pecl 安装 sphinx。并在 php 上使用 $sphinx = new Sphinx();我应该在哪里添加这个功能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多