Drupal 8のWebサイトでは、私が管理しているsearch_cronによって索引付けされたページの比率が100%をはるかに下回る値のままです。
新しいページにはインデックスが付けられますが、更新されたページには再度インデックスが付けられないように見えます。ノードが(再)インデックス付けされないようにするいくつかの問題があると思います。ただし、ログにエラーは表示されません。 cronの実行ごとに20ページしかインデックスを作成しない場合でも、Search_cronには非常に長い時間がかかります。
索引付けされていないノードを見つけるためのSQLクエリ(「モジュールの問題の確認」の下)を含むページ Troubleshooting cron があります。残念ながら、これはDrupal 7でのみ機能し、Drupal 8.のようなページを見つけることができませんでした。
Drupal 8でインデックスのないノードを見つけるにはどうすればよいですか?
問題を追跡する方法に関する他のアイデアはありますか?
更新:ロガーへの呼び出しをNodeSearch.phpに追加することにより、索引付けされているノードをログに記録する方法を見つけました。確かにこれはハックです。
Drupalは同じノードに何度もインデックスを作成しようとしますが、成功せず、エラーメッセージも表示されません。しかし、その理由はまだわかりません。
ノードのインデックス作成のステータス ベース _search_dataset
_。このテーブルには、コンテンツキーワードのブロブとそれに関連するsid
、コンテンツのキーワードの主キー(つまり、nid
)が格納されます。 node
テーブルと比較/結合すると、インデックスに登録されていないノードを確認できます。
それがどのように聞こえるかから、あなたはすでに問題のあるノードを発見したので、それは単に確認の問題です。ノードがインデックス付けされないように削除して(ハッキング NodeSearch::indexNode()
など)、それが問題であることを確認し、ノードのどのコンテンツがインデクサーをブロックしているかを調べます。