Sphinx 斯芬克斯排序问题?
我用的是1.10狮身人面像Sphinx 斯芬克斯排序问题?,sphinx,Sphinx,我用的是1.10狮身人面像 source tags { type = mysql sql_host = localhost sql_user = abc sql_pass = 123456 sql_db = compa
source tags
{
type = mysql
sql_host = localhost
sql_user = abc
sql_pass = 123456
sql_db = company
sql_sock = /var/lib/mysql/mysql.sock
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query_range = SELECT 1,max(id) FROM companies
sql_query = \
SELECT id,name FROM companies;
;
sql_attr_str2ordinal = name
}
这是按名称排序的,但我正在检索数据。
结果集是[name]=>954……
就像这样
sql\u attr\u str2ordinal=name
在使用此名称之前,我使用的是sql\u field\u string=name,该名称是可检索的,但不是按名称排序的。
解决这个问题的办法是什么
不存储值仅存储索引后的排序顺序(序号)。所以你不能从中得到价值
:
全文字段,但缺少排序(因为它不是属性)
:
缺少全文索引
所以我要做的是:
source tags
{
type = mysql
sql_host = localhost
sql_user = abc
sql_pass = 123456
sql_db = company
sql_sock = /var/lib/mysql/mysql.sock
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query_range = SELECT 1,max(id) FROM companies
sql_query = \
SELECT id,name as name_ordinal, name as name FROM companies;
sql_attr_str2ordinal = name_ordinal
sql_field_string = name
}
然后按name_ordinal排序,并用name查询。您可以用sql_attr_str2 ordinal替换为sql_attr_string。它将按名称返回排序并返回值。我修复了我的答案,因为itok thanku中有一个错误。我需要一个例子来帮助实时索引。感谢你的快速回放。对于实时索引,我使用了delta方法,它有两个索引(一个大,一个有差异)。查询两个索引,每x分钟更新增量索引。我每x小时或每x天合并一次索引。我想这会更好地帮助您: