1

sphinx 2.0.5-id64-release(r3308)でインデックスを作成するのに奇妙な問題があります

/etc/sphinx/sphinx.conf

source keywords
{
        // ..
    sql_query       = \
        SELECT keywords.lid, keywords.keyword FROM keywords_sites \
        LEFT JOIN keywords ON keywords_sites.kid = keywords.kid \
        GROUP BY keywords_sites.kid \

    sql_attr_uint       = lid
    sql_field_string    = keyword
        // ...

}

警告が表示されます

WARNING: attribute 'lid' not found - IGNORING

しかし、クエリを次のように変更すると、

sql_query       = \
    SELECT 1, keywords.lid, keywords.keyword FROM keywords_sites \
    LEFT JOIN keywords ON keywords_sites.kid = keywords.kid \
    GROUP BY keywords_sites.kid \

警告は表示されません。なぜこれが起こるのですか?

4

1 に答える 1

2

sql_queryの最初の列は、常にdocument_idとして使用されます。

document_idを属性として定義することはできません。

主キーも属性に格納する場合は、クエリに2回含める必要があります。

于 2012-10-24T11:25:18.407 に答える