サービスごとの多様なニーズに答える検索システム基盤
導入サービス数:11
検索レコード数(全サービス):22億
検索クラスタ仮想サーバ台数:365台
Nagato はサービス毎の異なるニーズに応えるための検索システム基盤です。オープンソースの検索エンジン Solr を使用して検索クラスタを構築し運用しています。サービス毎にコンテンツの内容やユーザのサービス利用パターンが異なっているため、それぞれに合わせた検索処理のチューニングを行うことでサービスのニーズに応えています。
Member
Software Engineer : 開発・運用担当
使用している主な技術
Java, Spring Boot, Apache Hive, Apache Solr, Apache Kafka, S3, Redis, nginx, Kubernetes, Cloud Storage, Cloud Pub/Sub,Prometheus,Ansible,Terraform
検索処理に関するノウハウ集約化と共有
解決したい課題/ ユースケース
検索処理のチューニング観点としては再現率や適合率といった検索精度に関係するものと検索処理のレイテンシーや検索インデックスの更新頻度といった検索システムのパフォーマンスに関係するものが挙げられます。
検索精度に関しては文字列の正規化や、形態素解析を使うのか ngram を使うのかといった検索対象フィールドのスキーマ定義、ユーザの行動ログを加味した検索スコアの調整などを行います。
検索システムのパフォーマンスに関しては検索リクエストの分散や検索インデックスの分割配置といった分散検索を行うためのシステム設定の調整を行います。
サービス毎に個別に検索機能を実装していた場合検索処理のチューニングに関するノウハウをサービス間で共有することが難しくなりますが、検索システム基盤としてこういったノウハウを集約化し個別のチューニングに反映することで検索システム基盤を利用するサービスに対してノウハウを共有することができるようになっています。
関連リンク
ー
サービス紹介
-

TiDB
1テーブルの行数 : 約5億行2025年のダウンタイム : 0 minクエリ実行数 : 約5千万/day Ti…
-

C4
登録スキーマ数(≒テーブル数) : 731平均イベント数 : 16.5 億イベント/日累計データ量 : 206…
-

wurfrahmen
Kubernetesで簡単にワークフロー管理を実現 導入サービス数 : 5実行されるワークフロー数 : 約4…
