6.4.结果集过滤设置

优质
小牛编辑
129浏览
2023-12-01

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米。