SphinxClient::setFilter
public bool SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude = false ] )
attribute
属性名称.
values
整数值数组.
exclude
如果设置为 TRUE, 则匹配该过滤规则的文档会被排除在结果之外
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
例如:
$sphinx->SetFilter('delid',array(300),true); //搜索的结果中将不会出现delid为300的值
searchd
83 {
84 listen = 9312
85 listen = 9306:mysql41
86 log = /usr/local/csft4/logs/searchd.log
87 query_log = /usr/local/csft4/logs/query.log
88 read_timeout = 5
89 max_children = 30
90 pid_file = /usr/local/csft4/pids/searchd.pid
91 max_matches = 1000
92 seamless_rotate = 1
93 preopen_indexes = 1
94 unlink_old = 1
95 attr_flush_period = 10 ------------- 这个配置很重要,如果在PHP端修改了文档中某个属性,这个会将其写回磁盘,然后配合SphinxClient::setFilter可以过滤掉这个属性的内容,否则搜索时还会出来
96 workers = threads # for RT to work
97
}
一个典型的修改属性后过滤的PHP代码如下:
$sphinx = new SphinxClient();
$sphinx->setServer("localhost", 9312);
$pp = $sphinx->updateAttributes('test1', array('uptime'),array(27=>array(9312)));
$kk = $sphinx->updateAttributes('test1', array('uptime'),array(31=>array(9312)));
$sphinx->SetFilter('uptime',array(9312),true);
var_dump($pp); //int(1),如失败返回false,成功返回0次或1次
public bool SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude = false ] )
attribute
属性名称.
values
整数值数组.
exclude
如果设置为 TRUE, 则匹配该过滤规则的文档会被排除在结果之外
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
例如:
$sphinx->SetFilter('delid',array(300),true); //搜索的结果中将不会出现delid为300的值
searchd
83 {
84 listen = 9312
85 listen = 9306:mysql41
86 log = /usr/local/csft4/logs/searchd.log
87 query_log = /usr/local/csft4/logs/query.log
88 read_timeout = 5
89 max_children = 30
90 pid_file = /usr/local/csft4/pids/searchd.pid
91 max_matches = 1000
92 seamless_rotate = 1
93 preopen_indexes = 1
94 unlink_old = 1
95 attr_flush_period = 10 ------------- 这个配置很重要,如果在PHP端修改了文档中某个属性,这个会将其写回磁盘,然后配合SphinxClient::setFilter可以过滤掉这个属性的内容,否则搜索时还会出来
96 workers = threads # for RT to work
97
}
一个典型的修改属性后过滤的PHP代码如下:
$sphinx = new SphinxClient();
$sphinx->setServer("localhost", 9312);
$pp = $sphinx->updateAttributes('test1', array('uptime'),array(27=>array(9312)));
$kk = $sphinx->updateAttributes('test1', array('uptime'),array(31=>array(9312)));
$sphinx->SetFilter('uptime',array(9312),true);
var_dump($pp); //int(1),如失败返回false,成功返回0次或1次
var_dump($kk); //int(1)
其他属性:http://php.net/manual/zh/book.sphinx.php