2024/01/22 学んだIT語彙

new IT vocabulary

転置インデックス

全文検索アルゴリズムの一種転置の由来は、通常のインデックスが文書から単語へのマッピング(それぞれの文書の中に、どのような単語が存在するかを示すデータ構造)であるのに対し、単語から文書へのマッピング(それぞれの単語が、どのような文書に含まれているか)となっていること。
単語がキーとなっているデータ形式をポスティングリストという。

全文検索の方法として大きく分けて 「grep型」と「インデックス型」が存在するらしい。「grep型」はまさに全文を検索するため、大きなデータでの検索はとても時間がかかる。そのため、インデックス(索引)を用いて効率的に検索する方式が良く使われているらしい。

現在のプロジェクトで使用しているSolrという検索エンジンでも採用されている方式。ElasticSearchでも使用されているらしいし、大きいデータを全文検索するときは使うことが多いのか?

ブラウザでもそうやけど、特に図書館での書籍の検索で全然関係ないものがヒットしまくっててイラっとすることが多かった。しかし、裏側で大変なことやってるとちょっとでも理解し始めると優しい気持ちになれますね。トークナイズ、正規化、シノニムなど、素人目にも恐ろしく大変なことをしていることがわかる。ただし飲食店でよくある操作性皆無のタッチパネルはエンジニア初めてからもっと許せなくなった。不思議。

参考サイト
転置インデックスの仕組みについて – 検索編
検索エンジン初心者向けに基礎知識をまとめてみた
転置索引とは何か?

APM

APMとは、Application Performance Managementの頭文字をとった略語。一般的にはアプリケーションやシステムの性能を管理・監視することを指す。

現在のプロジェクトではDatadogというAPMツールを使っている、という言い方で合ってる?ほかにもNew RelicとかDynatraceとかがAPMツールということになるのかな?

後輩のプロジェクトではHinemosというツールを使っているらしいが、APMのみならずCI/CDやジョブ管理まで担うらしく、こんなに機能モリモリなツールがあるのかとびっくりした。

参考サイト
APMとは?アプリケーション性能管理をわかりやすく解説

RUM

RUMとは、Real User Monitoringの頭文字をとった略語。実際のユーザーがウェブサイトやアプリケーションを利用する際の体験をリアルタイムで追跡し、分析する技術を指す。

APMとよく似ているが、APMはアプリ全体のパフォーマンスを監視するというようにマクロの視点に立っているが、RUMは個別のユーザーがアプリを利用する際の体験(ページのロード時間、ユーザーの操作に対する応答時間など)を追跡するというように、ミクロの視点に立っている。

また、APMはアプリの中身の状態を確認する「内側」の監視であるのに対し、RUMはユーザーからの利用体験を「外部」から追跡しているという対比もできる。

ちなみに、実際のユーザーではなく固定の環境から定点観測する場合は外形監視と言う。

参考サイト
フロントエンドからサーバーアプリまでパフォーマンス監視ができる New Relic

タイトルとURLをコピーしました