在sphinx中对全文列进行排序

时间:2009-09-21 12:21:21

标签: sphinx

我知道你可以在sphinx中按整数值排序,但是有没有办法让sphinx按字母顺序按文本字段排序?

我想搜索名字,而不是按相关性排序,我想按字母顺序按名字排序。我知道我可以在mysql中执行此操作但在mysql中我没有像词干这样的功能(据我所知)。

谢谢大家!

3 个答案:

答案 0 :(得分:2)

您可以将字符串用作ordinal attributes - Sphinx将收集给定列的所有值,按字母顺序排序,然后为第一个赋值为1,第二个值为2,依此类推。这允许排序,但不允许过滤。

答案 1 :(得分:2)

如果使用单一索引,

序数属性是易于使用的解决方案。如果您使用分布式索引,则会出现问题。但还有其他解决方案。

1°将数字值转换为字符串。来自sql的类似于conv(HEX(textfield),16,10)

hex对字符串很友好,并返回字符的六进制值的连接列表

2°,sphinx 2.0-x try sql_string_field

答案 2 :(得分:1)

据我所知,除了属性(以及一些特殊属性,如@weight等)之外,你无法排序。目前属性不能是字符串,但是这个功能应该从他所说的内容中得出0.9.10。

http://www.sphinxsearch.com/docs/current.html#sorting-modes