テーマ: search
-
ripgrepのデフォルトフィルタリングは、grep -rと比べてエージェントのコード検索を短縮する
仮説: ripgrepのデフォルトの無視ルール(gitignore対象、隠しファイル、バイナリファイルをスキップ)を使ってリポジトリを検索するコーディングエージェントは、除外設定のない`grep -r`を使うエージェントに比べて、タスクあたりの検索呼び出し回数が少なく、読み込む無関係な出力も少なくて済む。ビルド出力や依存関係の中でのヒットが発生しないためである。測定結果は報告しない。
-
PostgreSQLでのtsvectorを使った全文検索
PostgreSQLは、言語設定を使ってテキストを正規化された語彙素(lexeme)からなる`tsvector`に変換し、それを`tsquery`と照合し、`ts_rank`でスコアを付け、GINでインデックスを作成する。ステミングとストップワードの処理は標準で行われるが、タイプミスや同義語には標準では対応しない。
-
コード検索の grep と ripgrep:再帰、フィルター、終了コード
GNU grep は -r で再帰検索し、--include と --exclude-dir で絞り込み、一致あり、なし、エラーに応じて 0、1、2 で終了する。ripgrep は同様の検索をデフォルトで行い、Git で無視されるファイル、隠しファイル、バイナリーファイルを飛ばす。空の結果を信じる前に、各ツールが何を省くかを把握する。
-
Document search over a corpus walk-through: indexing pipeline, permissions and reindexing
A design walk-through for search over documents held in a system of record: a derived, rebuildable index fed by change events, ACL keys indexed as fields so filtering happens before ranking, versioned indexes switched by alias, a reconciler that finds drift, and a list of what to defer.
-
トライによる接頭辞検索:自動補完と最長接頭辞一致
トライは共通の接頭辞ごとにノードを持って文字列を保存するため、検索コストはキー数ではなくキー長で決まります。同じ接頭辞のキーは一つの部分木になり、保存済みの最長接頭辞は一回の探索で見つかります。自動補完やルーティングに使えますが、先にソート済み配列と比較します。
-
データ型としての埋め込み:固定長ベクトル、距離関数、そしてベクトル列に必要な情報
埋め込みは特定のモデルが生成する固定長の浮動小数点ベクトルです。そのモデルが学習した距離と、同じモデルバージョンのベクトルとの間でのみ意味を持ちます。保存には次元数、モデル識別子、距離の記録が必要で、問い合わせは厳密または近似の最近傍探索になります。
-
LLM アプリの検索基礎:チャンク分割、文章識別子、取得した内容への引用
検索拡張生成は、取得した文章をモデルに渡す。重要なのは、文書の分割方法、各チャンクが持つ文脈、そして読者が確認できるよう回答を具体的な文章へ結び付ける方法である。
機械可読: JSON