「東京→横浜→中町」の順に現れる場所だけを探す — UwView Pro に「シーケンシャル検索」を実装しました

リリース

多段階検索(Drill-down)の続報です。同じタブUIに、もうひとつのモード シーケンシャル検索(Sequence Search) を実装しました。

「順番」で探す、とはどういうことか

多段階検索は「近くに一緒に現れる語」を探しました。シーケンシャル検索が探すのは順序です。w1 → w2 → w3 が、この順で現れる箇所だけを拾います。

ログ調査で言えば、「ログイン → タイムアウト → 再起動」がこの順で並んだ箇所だけが欲しい、という場面です。and/or の検索では「3語とも含む」までしか絞れませんが、障害の物語には順序があります。順序が違えば、それは別の事件です。

セキュリティ分野では Elastic EQL の sequence、Splunk の transaction がまさにこの機能ですが、どちらもサーバーに取り込んだデータが対象。手元の数十GBのファイルに対して、デスクトップ単体でこれをやれるツールはほぼ存在しません。

実例:1億行から「東京→横浜→中町」の流れを60件に

冒頭のスクリーンショットは、OpenStreetMap 日本全域を展開した 1億行 のXMLです。

東京 (21,948) → 横浜 (874) → 中町 (60)

「東京」は21,948箇所。そのうち「後に横浜が続く」ものが874箇所。さらに「その後に中町が続く」流れは 60件。使い方は多段階検索と同じで、絞り込みバーのモードを「シーケンシャル」に切り替えて語を重ねるだけです。

途中でより前の語が再登場した場合は、そこから数え直します(東京→横浜のあとにまた東京が来たら、照合は新しい東京からやり直し)。つまり残るのは「割り込みのない、素直な流れ」だけです。

経路がそのまま見える —「履歴」メニュー

今回の実装で気に入っているのが、結果の右クリックメニューです。

履歴(絞り込みの経路) を開くと、そのシーケンスを構成した各語の位置——たとえば「行 711,638: 東京 → 行 713,709: 横浜 → 行 713,987: 中町」——が並び、どの行からでも本文へジャンプできます。

「なぜこの行がヒットしたのか」を、検索エンジンの中身を想像して推理する必要がない。成立した流れの経路そのものを見て、たどれる。 EQL や Splunk でも、ここまで直接的な見せ方はしません。

速度の話

シーケンシャル検索の各段は、前段の結果位置を開始点として本文を検索します。開始位置こそ絞られますが、処理そのものは全文検索と同等のため、所要時間も全文検索とほぼ同じです。多段階検索の「2段目以降は即時」とはここが異なります(多段階は前段の±N文脈ブロックの中だけを再検索するため)。±N(前後の文脈行数)が段ごとに独立なのは多段階検索と同じです。

入手(準備中)

多段階検索・シーケンシャル検索は UwView Pro V1.3以降 の機能です(V1.3 は準備中)。無料版 UwView でも従来の1段検索・±1文脈・保存は使えます。

現行版 UwView Pro V1.2.2 は Polar で販売中です。月額サブスクリプションは初月無料でお試しいただけます(買い切りに無料トライアルはありません)。

  • UwView Pro V1.2.2 を購入(Polar・買い切り $129 / 月額 $9・初月無料): https://buy.polar.sh/polar_cl_37MuoKb8WjSfLZ7hhjaTTzwAVBxu2XyqbnuWe3aGzbj
  • UwView Pro 製品ページ: https://uvp.y42u.net/pro/
  • 無料版 UwView: https://github.com/amru195704/UwView

※スクリーンショットのタイトルバーに見慣れない名前があることに気づいた方へ——「UwEditor Pro」は、UwView Pro を包含する編集対応の上位版として開発中の次期製品です。詳細は改めてお知らせします。

関連記事

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