私がSearch APIの設定で読んだことから、cronが実行されたときにページがインデックスに登録されているように思えます。これはそうではないようですが、おそらく私のロジックに欠陥があります。
ブログ/ニュースサイトの管理を手伝います。すべてのコンテンツは検索APIを介してインデックスが付けられ、ビューを使用してそのインデックス付けされたコンテンツのリストをレンダリングしています。 One Viewディスプレイは、サイトの最も人気のあるコンテンツのリストを表示します。これは、統計モジュールを使用して計算されます。 Number of views
フィールドを使用してこのビューをソートしていることがわかります:
最初は、ソート基準がまったく機能していないと思いました。テスト用にレンダリングされた出力にNumber of views
を追加しましたが、ページビューが変更されたときにページが並べ替えられていませんでした。
しかし、検索APIが手動で再インデックスされた後にのみ、ノードが並べ替えられることが最終的にわかりました。現在、検索APIはパブリッシュ直後にノードにインデックスを付けるように設定されていますが、これが発生すると、完全な再インデックスは行われないと想定しています。新しいノードを作成してこれをテストしたところ、ノードの順序が更新されないことがわかりました。また、Cronを手動で実行したところ、これも機能しないことがわかりました。
さて、Cronを実行しているときにSearch APIがインデックスを再作成していないようですが、これが有効な仮定であるかどうかはわかりません。そうでない場合は、毎晩再インデックスを設定します。このcronタスクを作成するにはどうすればよいですか?
ノードが更新されたときにのみインデックスが再作成される限り、あなたは正しいです。ノードを表示しているユーザーは更新として認識されないため、ビューの数を増やしてもノードのインデックスは再作成されません。
スケジュールに従ってインデックス全体を再構築することは正常ではありません。 Cronは、インデックス付けが必要であるとマークされているノードのみを再インデックス付けします。
インデックスを毎晩再構築するようにスケジュールする方法は2つあります。
0 23 * * * cd /var/www/home && drush sapi-r default
_search_api_index_reindex('default');
を呼び出す必要があります。