2012-02-22 134 views
4

我有獅身人面像對象。我得到了獅身人面像的所有結果。現在我需要再次運行搜索,而不需要重置完整的對象。我只需要重置一個過濾器。獅身人面像重置一個篩選器只有

這是我的過濾器我需要重置 $ sphinx-> SetFilter(「cid」,$ category_ids);

我該如何重置一個過濾器。我需要將舊值完全從過濾器中刪除。

+0

$ sphinx-> ResetFilters();不適合你? – Raja 2012-02-22 12:10:51

+1

獲得了這項如此修飾斯芬克斯對象 的foreach沒有功能($ sb_sphinx - > _濾波器作爲$密鑰=> $濾波器) {\t \t \t \t 如果($濾波器[ 'ATTR'] == sb_cid) { \t未設置($ sb_sphinx - > _ filters [$ key]); } } – 2012-02-22 12:53:32

+0

您應該將您的評論發佈爲答案。然後,您可以接受答案(甚至是您自己的答案),以便將問題標記爲已回答。 – barryhunter 2012-06-12 14:49:17

回答

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->RemoveFilter('your filter');刪除的過濾器。

+0

嗨,我通過pecl安裝獅身人面像。並使用PHP $ sphinx = new Sphinx();我應該在哪裏添加此功能? – 2014-06-20 05:37:59