検索履歴のデータベースを持たない検索エンジンを作った理由

2026-06-12 · Zeed

結論から書きます。Zeed Search のサーバには、「誰が何を検索したか」を記録するデータベースのテーブルがありません。 検索ログを集めてから匿名化するのでも、一定期間後に消すのでもなく、最初から書き込む場所を作らない — そういう設計の検索エンジンです。

実はこの記事のタイトルは「検索クエリを 1 byte も保存しない検索エンジン」にするつもりでした。でも実装を正確に説明すると、その言い方は少し強すぎます。そこでこの記事では、「保存しないもの」と「それでも残るもの」の境界線を、ぼかさずに全部書きます。

なぜ持たない設計にしたのか

検索窓に打つ言葉は、人がコンピュータに入力するものの中でいちばん正直です。体調の不安、お金の悩み、転職、家族のこと。だからこそ多くの検索サービスは履歴を大切な資産として保存します。広告の精度にも検索品質の改善にも使えるからで、それ自体は合理的なビジネス設計です。ここで批判したいわけではありません。

Zeed Search は別のモデルを選びました。収益源は広告ではなく Pro プラン (検索体験そのものへの課金) なので、検索履歴を資産として貯める理由が最初からありません。そして持っていないデータは、漏えいしないし、売れないし、運営者ですら覗けません。「ちゃんと守ります」より「そもそも持ちません」のほうが、約束として強い。理由はこれだけです。

保存しないもの

  • 検索クエリの永続ログ — クエリを書き込むテーブルもログファイルも存在しません。アプリケーションログにもクエリは出力しません
  • エラー報告の中のクエリ — 障害解析 (Sentry) に送るイベントからは、q= を含む行を送信前に機械的に取り除きます
  • IP アドレス — 保存しません。無料利用の回数制限は「IP + 日付 + ソルトのハッシュ値」で数えていて、この識別子は日付が変わると誰とも結びつかなくなります
  • 検索結果のクリック・滞在時間などの行動ログ — 収集していません

それでも残るもの (正直リスト)

データ置き場所期間・条件
直近の検索語 (最大 20 件)サーバのメモリのみ無料プランの曖昧さ解消・パーソナライズ用。匿名 Cookie 単位で最長 30 日。ディスクには書かれず、サーバ再起動で消える。Pro プランは記録自体をしない
検索結果のキャッシュサーバのメモリのみ同じ検索を速く返すための保持。5 分で消える
「共有」した AI まとめデータベース共有ボタンを押したその 1 件だけ、クエリとまとめ本文を保存。「誰が共有したか」を入れる列がそもそも存在しない
アカウント情報 (Pro)データベースメールアドレス・Stripe 顧客 ID・プラン区分のみ。カード情報は Stripe 側にしかない
利用回数データベース「今日何回使ったか」の数字だけ。何を検索したかは含まない

外部 API に渡るもの

検索インデックスと LLM をゼロから自前で持っているわけではないので、処理の途中でクエリ本文が外部サービスに渡ります。ここを書かないのはフェアではないので明記します。

  • 検索結果の取得 — Serper (Google 検索結果の API) または Brave Search API にクエリを送ります
  • AI まとめ・Deep Dive — Anthropic (Claude) にクエリと検索結果の抜粋を送ります。無料プランでは曖昧さ解消のため、直近の検索語 (最大 8 件) も文脈として一緒に渡ります

どちらも当社の API キーだけで呼び出し、あなたのアカウント・IP アドレス・Cookie は付けません。外部から見えるのは「Zeed Search の誰かがこれを検索した」までで、「誰が」は当社にも外部にも分かりません。

より硬い言葉での約束はプライバシーポリシーにまとめてあります。中身はこの記事と同じです。

登録なしで今すぐ試せます

Zeed Search はインストール不要・アカウント登録不要で、ブラウザからそのまま使えます。AI まとめ付きの検索を、履歴を差し出さずに試してみてください。

search.zeed.run で検索してみる →