多くのテキストがヒットしなくなりました

2021年2月12日 at 16:00

テキスト検索がヒットしないことが最近よく発生するようになりました。(どのタイミングからかは特定はできないのですが)
自動実行ジョブで「検索エンジンインデックス(更新)」を毎日実行しています。
ヒットしないことを確認後、「検索エンジンインデックス(すべて)」を手動実行すると、ヒットするようになります。

自動実行ジョブのCRON は正常終了しています。
ダッシュボードを見ると、(更新)と(すべて)では出力が異なり、前者は英語、後者は日本語表示です。
これに関係していることでしょうか?

検索エンジンインデックス(更新)ログ
Index performed on: 999 pages, 999 users, 999 files, 1 site, 0 Express objects, and 0 Express entries

検索エンジンインデックス(すべて)ログ
次の索引が実行されました: 999 ページ、999 ユーザー、999 ファイル、1 サイト、0 Express オブジェクト、0 Express エントリー

状態としては、毎日の検索エンジンインデックス(更新)でインデックスを壊しているのではないかと感じます。

環境
# concrete5 Version
Core Version - 8.5.4
Version Installed - 8.5.4
Database Version - 20200609145307

# Database Information
Version: 5.7.30

Xserver

タグ:

Re: 多くのテキストがヒットしなくなりました

2021年2月12日 at 16:10
追加情報。
ダッシュボードでデータベース文字セットを確認したところ
接続照合順序 utf8mb4_unicode_ci になっていました。

設定を変更した記憶はないのですが、データベースのセットは utf8 general ci のはずです。
 

Re: 多くのテキストがヒットしなくなりました

2021年2月15日 at 12:00
V8から文字セットがutf8mb4使用可能になっていたのですね。無知でした。

ダッシュボードより文字セットを utf8mb4_general_ci に設定変更。phpmysqladmin でもテーブルの照合順 utf8mb4_general_ci を確認。コンフィグのdatabese.phpの文字セットも確認

自動実行JOB「検索インデックス更新(すべて)」CRONで実行。
その後、HPの検索を実行 結果は
日本語NG、英語は適正にヒット

自動実行JOB「検索インデックス更新(すべて)」をダッシュボードから実行。
その後、HPの検索実行 結果は
日本語適正にヒット、英語は適正にヒット

検索照合は、文字セットと照合順の関連だろうとは思われますが、
自動実行JOBをCRONで実行するのとダッシュボードから実行するのとで結果が異なるのが???です。
打ち手が見えないです。

サーバーには、Mysqlの再起動機能はありません。
 

Re: 多くのテキストがヒットしなくなりました

2021年3月23日 at 14:42
C8.5.5のリリースノートに次がありました。
"CLI から実行するページ索引ジョブが、正常にインデックされていなかったバグを修正 (thanks haeflimi)"

これは解決か!と期待と、更新して再度試しました。
CRONで「インデックス更新」を実行。
結果はヒットしないものがあり、多分未解決です。
ダッシュボードから「インデックス更新」をするとヒットします。
定期的な手動更新は手間のかかることです。
 

Re: 多くのテキストがヒットしなくなりました

2021年9月29日 at 13:06
ダメもとで、先日リリースの8.5.6 で「検索インデックス」CRONを実施したところ、検索でヒットしました!
他のソフトウェア構成は変更していないので(多分)、8.5.6 で修正されたのではないかと思います。
これでダッシュボードから「検索インデックス更新」を定期的に実行しなくて良くなりそうです。
当初の問題は、CRONで「検索インデックス」を実行すると、インデックスが作成されないことでした。ダッシュボードから実行すると、インデックスは作成さてていました。
 

Re: 多くのテキストがヒットしなくなりました

2021年9月30日 at 12:23
こんにちは。
スレッドに返信できていなくてすいませんでした。

検索できるようになったとのこと。
ご報告ありがとうございます。

ちょうど、僕のところでも、なぜか CLI は検索できて、Cron は検索できないという状況を確認できたかも。ただ、翌日で Cron 実行を待ったらちゃんと検索できるようになった・・・という事象もありました。

なぜそうなったのかは謎のまま・・・。

とにかく、8.5.6 で検索できるようになったとのご報告、ありがとうございます。
 

Re: 多くのテキストがヒットしなくなりました

2021年9月30日 at 13:34
Katzさん。フォローありがとうございます。
インデックス更新対象は、「最新3日前 200ページまで?」などということで、こまめに手動更新していたのですが、忘れること度々。
今は性能の良いサーバーに引っ越したのですが、前は差分更新でも30分以上かかっていました。
CRON実行もなかなか正常終了せず、できた時には喜々としたのですが、検索ヒットしないとの度々の指摘で悩んでしました。
 

Re: 多くのテキストがヒットしなくなりました

2021年10月8日 at 20:56
eiza さん、返信遅れました。

すいません、8.5.3~8.5.5 で更新ジョブだとしても、Express や Users などのインデックス全てを更新しようとするため、メモリ消費が多くなって、メモリオーバーで停止してしまう可能性があるバグがありました。

もしかしたら、それが影響しているかもしれません。

8.5.6 にて、Hissy が、8.5.2 の時のように、更新ジョブは、更新されたページのインデックスだけを生成するように戻しました・・・。

管理画面から実行する自動実行ジョブは、その一つ一つが、ブラウザからAJAX で実行されているために、各 AJAX コールで、メモリが開放されているのですが、

Cron の場合はすべて1プロセスとして実行してしまうため、どうしても PHP のメモリ消費量が多くなってしまいがちとなります。

お話を伺うと、ページ数が多そうですので、Cron の実行途中に PHP の max_memory_limit を超えてこけていそうです。

もしかして、それが原因だったかもです。

とにかく、解決できたとのこと、よかったです。

よろしくお願いいたします。
 

Re: Re: 多くのテキストがヒットしなくなりました

2021年10月11日 at 10:05
Katzさん、情報ありがとうございます。
最近のバージョンのバグだのですね。
確かにインデックスサマリに、FileやUserがありましたね。Pageは1300ぐらいなので多いとも思いませんが、ファイルは7000と多めでしょうか。
エラーをキャッチできたのでしたらそれを表示してもらいたかったですね。
CRONの報告はエラーなしで、コンクリートやサーバーにもエラーが出ていなかったと思います。
 

Re: 多くのテキストがヒットしなくなりました

2021年10月11日 at 10:32
eiza さん

> CRONの報告はエラーなしで、コンクリートやサーバーにもエラーが出ていなかったと思います。

確かにそうなんですが、
Cron による実行で、特にメモリーオーバーだと、
C5 がエラーログを書き出す前にプロセスが死んでしまうので、
コンクリのエラーログには書き込まれないことが多いです。

CLIや Cron の PHP エラーログの設定がされていれば、
php のエラーログには書き込間れたかと思います。

よろしくお願いします。
 

Re: Re: 多くのテキストがヒットしなくなりました

2021年10月11日 at 10:55
なるほどですね。
今後の要調査の時には、CRONでのエラー報告ができるのか調査してみます。

Katsさんもいまだに C5…。 使いやすいですね。今後は CCM ですか
 

Re: 多くのテキストがヒットしなくなりました

2021年10月11日 at 12:14
あ・・・

> Katsさんもいまだに C5…。 使いやすいですね。今後は CCM ですか

ずっと13年間使ってるので、癖ですね(苦笑)

できるだけ「コンクリ」とか「Concrete」と書くようにしてます。

英語では、最初に「Concrete CMS」と書いたり言ったりして、残りは「Concrete」と表記したり言ったりしましょうということになっています。

ccm は、プログラムやフォルダ名などの略語として使いますが、
口語的には「コンクリ」とか「コンクリCMS」とかにしていこうと思ってます。

PortlandLabs CEO の Franz さんとしては、早く「c5」から次のステップに行きたいみたいなんで、気をつけないといけないと思っている最中でした・・・。

よろしくお願いします。
 

Re: 多くのテキストがヒットしなくなりました

2021年10月15日 at 16:59
本番を 8.5.6にアップデート後、自動実行CRONの通知ログが以下です。
[index_search] Index performed on: 52 pages, 0 users, 0 files, 0 sites, 0 Express objects, and 0 Express entries

確かに、users files が非対象になっていました。
そして検索したところ、無事にヒットしました!