![見出し画像](https://assets.st-note.com/production/uploads/images/77701241/rectangle_large_type_2_8de9d175f19198e3ad101ece6a1113d2.png?width=1200)
検索システム ― 実務者のための開発改善ガイドブックを読んで
検索システム ― 実務者のための開発改善ガイドブックを読みました。この記事はその感想です。
全体的な感想
特定の検索エンジンに関係なく役立つ内容が書かれているので、自分を含めどの検索エンジンを使っている人でもためなる内容となっています。
関連する多くのトピックが網羅されているので、検索を実際に導入する方がはじめに読んでこの分野の大まかな地図を得るのにベストな書籍だと思います。
インデクスやクエリだけでなく評価方法、ログの扱い、インデクス方式(リアルタイム、バッチ)の特性とそれらがフィットするサービスなど他の書籍では中々語られないですが、重要なトピックがカバーされています。
以下は自分が読んでていて特に参考になった箇所です。
ポスティングリストについて詳しい解説
第一部の4章に検索インデクスのコア部分、ポスティングリストについて詳しい解説が例をふんだんに交えて載っています。洋書も含めてここまで丁寧に解説されている文献はないと思います。
データ指向アプリケーションデザインでなされているアルゴリズムの解説ように処理の流れがわかりやすく記述されています。
ファイルシステムのクローラ
たまに、組織にあるファイルシステムの文書をクロールして検索サービス作ってよって言われたりするんですが、これまでACL周りとか真面目にやると大変そうだなーーっと思っていました。
書籍内でFSCrawlerというツールが紹介されていて、これが使えると嬉しいーー。
検索前のパフォーマンス予測まわり
検索システムではなく、ユーザが発行する検索クエリ側のパフォーマンスを推定する話が面白かったです。ユーザが発行しているクエリ自体が検索精度の尺度になると考えたことがなかったので目からウロコでした。今後の参考にしたいです。
インターリービング、ABテスト
ABテスト、やインターリービングについて詳しい解説が載っています。読んでいて、このあたりの処理をアプリケーションに記述すると、アプリケーションコードが読みにくくなって厳しくなりがちなのを思い出しました(設定を何度も修正しながら検証をすすめてゆくのでコードが荒れがち)。
そこでElasticsearch側でサポートしてほしいという気持ちになりました。プラグインもしくはクライアントのちょっとした拡張でもいいのかもしれないです。誰か作って欲しい 🙇