7

ここに画像の説明を入力Magento で 1 つの問題に直面しています。約 4500 の製品を含むマルチ Web サイト機能を備えた 1 つの Magento ストアがあります。製品を再インデックスしたい。

Magentoのデフォルト機能を使用してcsvで4500製品をインポートしました。製品をインポートした後、変更が前面に表示されないため、インデックス管理に移動したところ、2 つのインデックスが処理中の状態であることがわかりました

1 商品属性 2 商品フラットデータ

私はすでに次の手順を実行していました。

1 管理者側のシステム -> インデックス管理から再インデックスを試みます

2 phpスクリプトを呼び出して手動でやってみる

require_once 'app/Mage.php';
umask( 0 );
Mage :: app( "default" );
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
$process->reindexAll();

また

$indexingProcesses = Mage::getSingleton('index/indexer')->getProcessesCollection(); 
foreach ($indexingProcesses as $process) {
    $process->reindexEverything();
}

また、var/locks フォルダーのアクセス許可を 777 に変更し、そのフォルダーの名前を変更し、このロック フォルダーに作成されたが解決策が得られなかった .lock ファイルを削除しようとします。

SSH 権限がありません。インデックスの再作成の問題を解決するのに役立つ他の解決策はありますか。

4

5 に答える 5

6

注: 私の経験では、以下の回答はこの種の問題に関連していますが、質問者が現在経験している状況の原因ではないようです。

Processing次の 2 つのいずれかを意味します。

  • インデックスは実際にはまだ実行中の可能性があります。その場合は、座って終了するまで待ちます。Magento のインデックス作成には非常に長い時間がかかる場合があります (4500 製品の場合、サーバーによっては「数時間」かかる可能性があります)。

  • インデクサー プロセスが停止し、古いロックが残っている可能性があります。一方、デッド インデクサーは別のユーザーによって実行された可能性があります。最も一般的なケースは、Web サイトで使用されているのと同じユーザー (例:や)ではなく、 、または通常のユーザー アカウントcronとしてインデクサーを実行するように誤って構成されていることです。rootapachewww

Processing実際に意味するのは、「Magento がこれらのインデクサー ジョブのロックを取得できませんでした」ということだけです。最初のケースは些細で面白くありません。数時間待って、同じインデクサーがまだ としてリストされているProcessing場合は、2 番目のケースである可能性があります。

var/locksMagento ルートの下にあるロック ファイルのアクセス許可を確認します。それらは、Web サーバーが実行されているのと同じユーザーによって所有されていますか? そうでない場合、およびインデックスが実行されていないことが確実な場合は、ロックを削除しても安全です。次のステップは、そもそもロックのパーミッションが間違っていた理由を突き止めることです。アクセスできない場合は、ホストとの会話がより良いかもしれませんssh

于 2012-09-18T06:01:09.760 に答える
1

インデクサーからのエラーはキャッチされ、デフォルトではログに記録されません。一般的な回避策は、CLI再インデックスツールを使用することです。これは、エラーがあると非常に冗長になります。

例えば。

php shell/indexer.php --reindex ...

ただし、SSHアクセスがない場合は、indexer.phpファイルを調べてエラーがどのように生成されるかを確認するか、CLIをエミュレートするWebベースのPHPスクリプトからshell_execまたはを起動することができます。exec

于 2012-09-18T17:31:43.050 に答える
0

新しい顧客グループを作成するときに、同じ問題に遭遇しました。価格を再インデックス化できませんでした。

ここで解決策を見つけましたhttp://www.magikcommerce.com/blog/how-to-resolve-magento-reindexing-errors-in-your-magento-store/

手順は次のとおりです。

  1. var/locks ディレクトリを見つけて、このディレクトリの下にあるすべてのファイルを削除します。これにより、再度インデックスを作成するためのすべてのロックがクリアされます。

  2. 次に、MysQSL/phpMyAdmin にログインして、次の MySQL クエリを実行します (この MySQL クエリをコミットする前に、完全なバックアップを取得していることを確認してください)。

    DELETE cpop.* FROM catalog_product_option_price AS cpop INNER JOIN catalog_product_option AS cpo ON cpo.option_id = cpop.option_id WHERE cpo.type = 'checkbox' OR cpo.type = 'radio' OR cpo.type = 'drop_down';

    DELETE cpotp.* FROM catalog_product_option_type_price AS cpotp
    INNER JOIN catalog_product_option_type_value AS cpotv
    ON cpotv.option_type_id = cpotp.option_type_id
    INNER JOIN catalog_product_option AS cpo
    ON cpotv.option_id = cpo.option_id
    WHERE
    cpo.type <> 'checkbox' AND
    cpo.type <> 'radio' AND
    cpo.type <> 'drop_down';
    
  3. Magento 管理パネルに再度ログインし、[システム] タブ > [インデックス管理のヒット インデックス] に再度移動すると、そのようなエラーが再度表示されないことがわかります。問題を解決するために今後インデックスの再作成が停止した場合は、これらの同じ手順を再度実行できますMagento ReIndexing

于 2015-10-31T09:47:35.730 に答える
0

catalog_product_flatインデックス プロセスを再インデックスできませんでした。1 日を過ごし、インターネットでいくつかの解決策を試した後。問題を修正できました。以下に手順を示します。

  1. インデックス作成の問題に直面している Magento Db のクローンを作成します。
  2. 新しく作成されたデータベースにデータベースをダンプします。
  3. 単一の店舗の場合はテーブルを切り捨て、catalog_product_flat_1複数の店舗の場合は複数のテーブルcatalog_product_flat_**あり、 は店舗 ID です。ここで、そのテーブルをすべて切り捨てます。
  4. mangento 実行中のインスタンスを新しく作成したデータベースにポイントし、データベースを構成して、そのサイトが正常に機能するようにします。
  5. コマンドを実行するphp document_root/shell/indexer.php --reindex catalog_product_flatか、管理者からインデックスを再作成してみてください。php document_root/shell/indexer.php --reindexallすべてのプロセスを再インデックス化するため。
于 2014-12-09T05:30:46.517 に答える
0

理由

catalog_product_flat_% テーブルに存在しない/削除された製品への参照があります。

解決

MySQL コンソールまたは phpMyAdmin で「catalog_product_flat_%」テーブル (catalog_product_flat_1、catalog_product_flat_2、catalog_product_flat_3 など) を切り捨ててみてください。

mysql > truncate table ´catalog_product_flat_1´;
mysql > truncate table ´catalog_product_flat_2´;
mysql > truncate table ´catalog_product_flat_3´;

次に、再インデックスします。

于 2012-09-18T07:58:57.310 に答える