2017-01-16 1 views
0

primaire, je suis en train d'ajouter la clé primaire int comme sql_field_string, quand je suis index rotate je reçois un message: AVERTISSEMENT: l'attribut 'purchase_id' not found - IGNORERrecherche Sphinx avec int clé

ma config:

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 
} 

comment je peux ajouter le champ id dans l'index?

Répondre

1

Eh bien l'ID de document est déjà un attribut virtuel. Cela fonctionne comme un vrai attribut.

Donc peut filtrer/trier/grouper par ID.

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

... pour en faire un champ, doivent être un peu plus compliqué, par exemple dupliquer deux fois.

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

La première colonne est toujours le document-id, ainsi sera utilisé pour l'attribut virtuel.

Donc laisse purchase_id pour être un champ 'standard'.