2017-01-16 7 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 стандартным полем.

Смежные вопросы