Сфинкс + Postgres + UUID проблемы - PullRequest
       6

Сфинкс + Postgres + UUID проблемы

1 голос
/ 02 декабря 2010

У меня есть sql_query для источника, определенного так:

 sql_query               = SELECT \
  criteria.item_uuid, \
  criteria.user_id, \
  criteria.color, \
  criteria.selection, \
  criteria.item_id, \
  home.state, \
  item.* \
  FROM criteria \
  INNER JOIN item USING (item_uuid) \
  INNER JOIN user_info home USING (user_id) \
  WHERE criteria.item_uuid IS NOT NULL

А затем индекс:

 index csearch {
  source                  = csearch
  path                    = /usr/local/sphinx/var/data/csearch
  docinfo                 = extern
  enable_star             = 1
  min_prefix_len          = 0
  min_infix_len           = 0
  morphology              = stem_en
 }

Но когда я бегу indexer --rotate csearch, я получаю:

 indexing index 'csearch'...
 WARNING: zero/NULL document_id, skipping

Идея в том, что столбец item_uuid - это нужный мне идентификатор, основанный на некоторой комбинации других столбцов. Столбец item_uuid является типом uuid в postgres: возможно, sphinx не поддерживает это? Во всяком случае, любые идеи здесь будут с благодарностью.

1 Ответ

1 голос
/ 02 декабря 2010

Прочитайте документы, document_id должен быть уникальным беззнаковым ненулевым целым числом.

http://www.sphx.org/docs/manual-1.10.html#data-restrictions

Вы можете попробовать использовать SELECT row_number (), uuid и т. Д. ...

...