6.4.结果集过滤设置
6.4.1.SetIDRange (设置查询ID范围)
原型:function SetIDRange ( $min, $max )
设置接受的文档ID范围。参数必须是整数。默认是0和0,意思是不限制范围。
此调用执行后,只有ID在$min
和$max
(包括$min
和$max
)之间的文档会被匹配。
6.4.2.SetFilter (设置属性过滤)
原型:function SetFilter ( $attribute, $values, $exclude=false )
增加整数值过滤器。
此调用在已有的过滤器列表中添加新的过滤器。$attribute
是属性名。$values
是整数数组。$exclude
是布尔值,它控制是接受匹配的文档(默认模式,即$exclude
为false时)还是拒绝它们。
只有当索引中$attribute
列的值与$values
中的任一值匹配时文档才会被匹配(或者拒绝,如果$exclude
值为true)
6.4.3.SetFilterRange (设置属性范围)
原型:function SetFilterRange ( $attribute, $min, $max, $exclude=false )
添加新的整数范围过滤器。
此调用在已有的过滤器列表中添加新的过滤器。$attribute
是属性名,$min
、$max
定义了一个整数闭区间,$exclude
布尔值,它控制是接受匹配的文档(默认模式,即$exclude
为false时)还是拒绝它们。
只有当索引中$attribute
列的值落在$min
和$max
之间(包括$min
和$max
),文档才会被匹配(或者拒绝,如果$exclude
值为true)。
6.4.4.SetFilterFloatRange (设置浮点数范围)
原型:function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false )
增加新的浮点数范围过滤器。
此调用在已有的过滤器列表中添加新的过滤器。$attribute
是属性名,$min
、$max
定义了一个浮点数闭区间,$exclude
必须是布尔值,它控制是接受匹配的文档(默认模式,即$exclude
为false时)还是拒绝它们。
只有当索引中$attribute
列的值落在$min
和$max
之间(包括$min
和$max
),文档才会被匹配(或者拒绝,如果$exclude
值为true)。
6.4.5.SetGeoAnchor (设置地表距离锚点)
原型:function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long )
为地表距离计算设置锚点,并且允许使用它们。
$attrlat
和$attrlong
是字符串,分别指定了对应经度和纬度的属性名称。$lat
和$long
是浮点值,指定了锚点的经度和纬度值,以角度为单位。
一旦设置了锚点,您就可以在您的过滤器和/或排序表达式中使用"@geodist"
特殊属性。Sphinx将在每一次全文检索中计算给定经纬度与锚点之前的地表距离,并把此距离附加到匹配结果上去。SetGeoAnchor
和索引属性数据中的经纬度值都是角度。而结果会以米为单位返回,因此地表距离1000.0代表1千米。一英里大约是1609.344米。