2017-01-16 56 views
0

我想补充int主键作为sql_field_string,当我旋转指数我得到消息: 警告:属性“purchase_id”未找到 - 忽略Sphinx搜索与诠释主键

我的配置:

sp_purchases_source : sp_source_config 
{ 

     sql_query = \ 
       SELECT sp_purchase.id AS purchase_id, sp_purchase.status, sp_purchase.name, sp_purchase.description_small, sp_purchase.description_full, sp_purchase.news,\ 
       UNIX_TIMESTAMP(sp_purchase.date_current) AS date_current, UNIX_TIMESTAMP(sp_purchase.stop_date) AS stop_date, sp_purchase.image, sp_purchase.access, \ 
       sp_purchase.is_vip, sp_purchase.is_foreign, sp_purchase.owner_username, sp_purchase.owner_id, sp_purchase.count_users, sp_purchase.count_comments \ 
       FROM sp_purchase \ 
       WHERE sp_purchase.is_hidden = 0 AND sp_purchase.status IN (2,4,17) 

     sql_ranged_throttle = 0 
     sql_field_string = purchase_id 
     sql_field_string = name 
     sql_field_string = description_small 
     sql_field_string = description_full 
     sql_field_string = owner_username 
     sql_field_string = news 
     sql_attr_timestamp = date_current 
     sql_attr_timestamp = stop_date 
     sql_attr_string  = image 
     sql_attr_uint  = access 
     sql_attr_uint  = owner_id 
     sql_attr_uint  = status 
     sql_attr_bool  = is_vip 
     sql_attr_bool  = is_foreign 
     sql_attr_uint  = count_users 
     sql_attr_uint  = count_comments 
} 

如何在索引中添加id字段?

回答

1

那么文档ID是已经是一个虚拟属性了。它的作用就像一个真正的属性。

所以可以通过ID过滤/排序/分组。

sphinxql> SELECT id,name FROM sp_purchases WHERE id BETWEEN 10 and 20; 

...使它成为一个领域,必须有点棘手,例如重复两次。

sql_query = \ 
      SELECT sp_purchase.id, sp_purchase.id AS purchase_id, sp_purchase.status, ... 

第一列是总是文档-ID,所以将用于虚拟属性。

因此叶purchase_id是一个'标准'字段。