1

mysql テーブルの同じコピーに対して sphinx インデックスを作成しようとしていますが、自動インクリメント ID でエラーが発生しました。そのため、自動インクリメント ID の同じフィールド名を作成することはできません。

エラー:

WARNING: attribute 'u_g_id' not found - IGNORING

これが私の設定です..

###############################
    ## Sphinx configuration file ##
    ###############################
    # Source For Assamese Male Profiles
    source usergallerysrc
    {
            type                            = mysql
            sql_host                        = localhost
            sql_user                        = test
            sql_pass                        = test
            sql_db                          = test
            sql_query                       = SELECT u_g_id,u_g_u_id,u_g_type,u_g_path,u_g_time from user_gallery where u_g_status='1'

            sql_attr_bigint         = u_g_id        
            sql_attr_bigint                 = u_g_u_id
        sql_attr_uint                   = u_g_type
        sql_attr_timestamp              = u_g_time
            sql_field_string                = u_g_path

    }

    ######################
    ## index definition ##
    ######################
    # gallery index
    index usergalleryindex
    {
            source                  = usergallerysrc
            path                    = /usr/local/sphinx/var/data/usergalleryindex/usergalleryindex
            docinfo                 = extern
            mlock                   = 0
            morphology              = none
            min_word_len            = 1
            charset_type            = sbcs
            html_strip              = 1
            html_remove_elements    = style, script
            enable_star             = 1
            min_infix_len           = 3
    }

誰でも私を助けることができます...前もって感謝します...

4

1 に答える 1

10

結果の最初の列がALWAYSsql_queryとして使用されます。document_idとして定義することはできませんattribute

したがって、u_g_id は既に使用されているため見つかりません。

document_id列を使用したい場合attribute(理由はわかりませんが)、クエリでそれを複製する必要があります。

于 2013-05-20T10:54:08.367 に答える