2017-11-27 14 views
0

私が2つのテーブルを結合するクエリを使用してsphinxsearchインデックスを作成しようとしています。sphinxsearchが属性が欠落しているとエラーを返します

今までインデックスは正常に動作していましたが、今度はインデックス内にさらに多くのデータが必要です。

sql_query = SELECT IFNULL(`pbd`.`main_page`, 1) as `main_page`, \ 
         `act`.`id`, \ 
           UNIX_TIMESTAMP(`act`.`date`) as date, \ 
           `act`.`post_title`, \ 
           `act`.`post_content`,\ 
           `act`.`blog_name`, \ 
           `act`.`blog_network`,\ 
           CASE `act`.`blog_type`\ 
            WHEN 'premium' THEN 0 \ 
            WHEN 'plus' THEN 1 \ 
            WHEN 'basic' THEN 2 \ 
            WHEN '' THEN 2 \ 
           ELSE 2 \ 
           END as blog_type, \ 
           crc32(`act`.`blog_cluster`) as category \ 
       FROM `wp_bd_activity` act \ 
       LEFT JOIN `wp_bd_premium_blogs_data` pbd ON act.blog_id = pbd.blog_id \ 
       where act.blog_id in (select blog_id from wp_blogs where deleted != 1 and public = 1) 

を次のように、このコマンドを使用して索引を回転しようとしたとき

クエリが見えます:属性 'main_page' が見つかりません - :

/usr/bin/indexer activity --rotate 

私は

WARNINGこのエラーが出ますIGNORING

これはクエリの最初の行です。

提案がありますか?私は問題が何であるか把握していないようです。

のMySQLバージョン5.5.58

sphinxsearchバージョン2.0.4

答えて

1

結果セット内の最初の列である、常に'文書ID' としあります。ドキュメントに使用される一意のIDです。あなたのact.idが推測ので、(どちらかとフィールドにすることはできません!)属性として使用することが利用できなくなっ

からmain_pageとして

...は、そのidとして想定して最初の列であります本当一意のIDは、その最初の

sql_query = SELECT `act`.`id`, \ 
    IFNULL(`pbd`.`main_page`, 1) as `main_page`, \ 
    UNIX_TIMESTAMP(`act`.`date`) as date, \ 

列の順序が本当に問題(インデックスに保存されている順番に影響を与える以外の)ないことを置く - など*設定sql_attrその組み合わせを、THAは、列がフィールドおよび/または属性であるかどうかを判断する。

+0

ありがとう、問題を解決しました:-) –

関連する問題