狮身人面像按字母顺序分页/导航菜单

时间:2012-10-15 10:40:39

标签: pagination sphinx alphabetical

我需要在Sphinx中进行分页/导航菜单

*(用于标志)0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

并过滤结果。

在“A”页面中 - 只是以“A”开头的结果

由于

1 个答案:

答案 0 :(得分:1)

但如果你的意思是sphinxsearch,就像这样

sql_query = SELECT id, name, ORD(IF(ORD(name) BETWEEN 48 AND 57 OR ORD(UPPER(name)) BETWEEN 65 AND 90, UPPER(SUBSTRING(name,0,1)), '*')) AS ord, ...
sql_attr_uint = ord 

会给你一个表示名字第一个字母的数字属性。可与 setFilter 一起使用,仅返回与该值匹配的结果。

甚至可以与 setGroupBy 一起使用,以获得与每个序号匹配的结果数。

参考:http://www.asciitable.com/

-

编辑添加:使用整数属性 - 通过mysql ORD函数得到一个整数,因为attr str2ordinal(也不是字符串属性!)允许过滤。将自己转换为这样的整数允许过滤。

例如,只获得“A”结果,可以做

$cl->setFilter('ord',array(ord('A'))); 

这是有效的,因为php的ord函数与mysql的工作方式相同。

相关问题