0

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

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

谢谢大家!

4

3 回答 3

2

您可以使用字符串作为序数属性- Sphinx 将收集给定列的所有值,按字母顺序对它们进行排序,然后给第一个值为 1,第二个值为 2,依此类推。这允许排序,但不允许过滤。

于 2009-09-21T17:11:33.767 回答
2

如果您使用单片索引,则序数属性是最简单的解决方案。如果您使用分布式索引,您就会遇到问题。但还有其他解决方案。

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

hex 对字符串很友好,并返回字符的 hexa 值的串联列表)

2° 使用 sphinx 2.0-x 尝试 sql_string_field

于 2011-11-05T09:28:54.183 回答
1

据我所知,除了属性(以及一些特殊属性,如@weight 等)之外,您无法按其他任何内容进行排序。目前属性不能是字符串,但根据他的说法,这个功能应该在 0.9.10 中出现。

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

于 2009-09-21T12:38:40.533 回答