Sphinx + Postgres + uuid问题

时间:2010-12-02 18:47:50

标签: postgresql sphinx

对于像这样定义的来源,我有一个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列是postgres中的uuid类型:也许sphinx不支持这个?无论如何,这里的任何想法将不胜感激。

1 个答案:

答案 0 :(得分:1)

阅读文档,document_id必须是唯一的无符号非零整数。

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

您可以尝试使用SELECT row_number(),uuid等...