こんにちは。
**「既存トピックに移動」**モーダルで問題が発生しています(以前はサイトで機能していたため、リグレッションのようです)。
- トピックを検索に入力しても結果が絞り込まれない
- ネットワークリクエストは正しいパラメータで200を返す
- ブラウザのコンソールにJSエラーはない
- サイト全体の
/searchは期待どおりに動作する - リビルド後も問題は継続している
行われているリクエストの例:
/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular
選択リストは静的なトピックのセットのままで、
termが変更されても変化しないようです。
クライアント側のデバッグを行った後、最初はこれがPostgresで pg_trgm が有効になっていないことが原因ではないかと疑いましたが、進む前に確認したいと思いました。
以下のコマンドを実行しました。
./launcher enter app
rails c
ActiveRecord::Base.connection.execute(
"SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a
この診断は、コマンドが以下を返した場合に有効になります。
[]
しかし、代わりに以下が返されました。
[{"extname"=>"pg_trgm"}]
したがって、pg_trgm は有効であり、これが根本原因ではないようです。
そのため、以下のコマンドを実行する予定です。
./launcher enter app
rake search:reindex
私のフォーラムの特定のカテゴリには非常に多くのトピックがあるため、これは関連性があるかもしれません。
混乱しているのは以下の点です。
- Discourseはそれ以外は正常に機能し続けている
- 完全な
/searchは期待どおりに動作する - トピック移動のオートコンプリートは警告なしに静かに劣化する
デバッグの一環として、search prefer recent posts 設定を有効にしてブラウザをリロードしました。これは動作に影響を与えませんでした。「既存トピックに移動」の検索は、入力しても結果を絞り込みません。
この設定は完全な /search のランキングにのみ影響し、トピック選択のエンドポイントには影響しないため、問題が一般的な検索パフォーマンスではなく /search/query に特有のものであるという見解と一致しています。
rake search:reindex を実行する前に、理由を再確認したいと思いました。
トピック移動の選択ツールは、search_for_id=true を使用して /search/query を利用します。これは完全な /search エンドポイントよりもインデックス検索に直接依存しています。したがって、部分的に古くなっているか一貫性のない検索インデックスが、完全な検索がまだ動作しているように見えても、選択ツールに影響を与える可能性があります。
以下の点を考慮すると:
- エンドポイントは呼び出されている
- レスポンスは200を返す
pg_trgmは有効になっているsearch prefer recent postsの切り替えは効果がない
完全な rake search:reindex が、インデックスの一貫性の問題を排除するための次の論理的なステップのように思われます。別途、警告やフィードバックが全くないことは、管理者UXの観点から特に混乱を招きます。