使用Yii和PHP在Spinx搜索中按字段排序

时间:2015-02-06 10:49:35

标签: php mysql indexing yii sphinx

Helo,我是Sphinx搜索的新手。我想获取first_name排序的所有行,但不会发生。这是我的源文件:

return
"source instructorSourse: _CONNECT_NAME_
{
sql_range_step = 1000
sql_query = SELECT id, first_name, last_name, country_id, city_id,    is_banned, is_deleted, is_confirmed, dive_level as dive_level, UNIX_TIMESTAMP(last_activity) AS last_activity \
    FROM user AS u \
    WHERE dive_level = 'instructor'  \
    ORDER BY first_name DESC
    sql_attr_bigint = country_id
    sql_attr_bigint = city_id
    sql_attr_bool = is_banned
    sql_attr_bool = is_deleted  
    sql_attr_bool = is_confirmed        
    sql_attr_timestamp = last_activity
   }";

但它仍然没有订单返回行。我做错了什么?

1 个答案:

答案 0 :(得分:1)

sql_query只是将数据传递给索引器,无论你使用什么顺序,索引器都会重新排序以构建索引。

为了能够订购结果,您需要确保该列存储在索引中 - 作为属性。 (在您的示例中,您可以按last_activity作为属性订购结果)

所以你需要在属性 last_namesql_attr_string可能有用,但可能sql_field_string甚至更好,因为它使{{1}成为string }和attribute