web-dev-qa-db-ja.com

保存時にノードにインデックスが付けられないのはなぜですか?

保存時にノードにインデックスが付けられないのはなぜですか?

ご存知のように、 node_update_indexsearch_cron 。これは、検索インデックスがcronの実行と同じ頻度でのみ更新されることを意味します。

なぜか知りたい _node_index_node は通常の一部ではありません node_save プロセス、例えば

if ($node->status == NODE_PUBLISHED) {
  _node_index_node($node);
}

これには正当な理由がありますか?この関数はノードモジュール自体によって定義されているため、責任の分離がどのように行われるかはわかりません。また、これを行わない理由についても考えられません。

関連する質問は、ノードが作成または更新されたときに起動するアクションを接続しても安全ですか?

4
mpdonadio

それはスケーラビリティの利益のためだと思います。ユーザーが作成したコンテンツを含む大規模で人気のあるサイトがあるとします。ユーザーが20秒ごとにノードを保存(たとえば、質問や回答を投稿)したとします。 20秒ごとに送信されるだけでなく、インデックス付けされるノードを想像してください。サイトはすぐに使用できなくなります。したがって、ノードの送信とは無関係にインデックス作成を実行できるようにする方がはるかに優れています。

2
beth