Mysql
 sql >> база данни >  >> RDS >> Mysql

Сфинкс без използване на идентификатор на auto_increment

Разбира се - това е лесно за заобикаляне. Ако трябва да създадете свои собствени идентификатори само за Sphinx и не искате те да се сблъскват, можете да направите нещо подобно във вашия sphinx.conf (примерен код за MySQL)

source products {

  # Use a variable to store a throwaway ID value
  sql_query_pre = SELECT @id := 0 

  # Keep incrementing the throwaway ID.
  # "code" is present twice because Sphinx does not full-text index attributes
  sql_query = SELECT @id := @id + 1, code AS code_attr, code, description FROM products

  # Return the code so that your app will know which records were matched
  # this will only work in Sphinx 0.9.10 and higher!
  sql_attr_string = code_attr  
}

Единственият проблем е, че все още се нуждаете от начин да разберете кои записи са били съпоставени от вашето търсене. Sphinx ще върне идентификатора (което вече е безсмислено) плюс всички колони, които маркирате като „атрибути“.

Sphinx 0.9.10 и по-нова версия ще може да ви върне кода на продукта ви като част от резултатите от търсенето, тъй като поддържа атрибути на низ.

0.9.10 все още не е официално издание, но изглежда страхотно. Изглежда, че Zawodny го преглежда в списъка на Крейг така че няма да съм много нервен да разчитам на тази функция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно свързване с MySQL на localhost:3306 с потребителски root

  2. Актуализиране на MySQL данни на живо

  3. Как да управлявате голям набор от данни с помощта на Spring MySQL и RowCallbackHandler

  4. MySQL Workbench

  5. Изхвърлете sql файл в ClearDB в Heroku