2017-01-16 79 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是一個'標準'字段。