← 概念解説に戻る

Concept Fable

Weaviate

先に結論:Weaviateはオープンソースのベクトルデータベースであり、ベクトル検索、構造化フィルタリング、キーワード検索(BM25)、およびschemaベースのオブジェクトストレージを組み合わせている。その核心的な設計理念は「すべてをベクトル化する」ことである。各データオブジェクトは同時にベクトル、構造化属性、キーワード転置インデックスを持ち、クエリ時には混合して重み付けして使用できる。WeaviateはGraphQLとRESTful API、自動ベクトル化(embeddingモデルの統合による)、マルチテナント、モジュール式拡張(summarizer、QA、NERなど)、およびhybrid searchのネイティブ実装をサポートする。企業RAGのシナリオでは、Weaviateはschema管理、ハイブリッド検索、マルチモーダルデータ(テキスト、画像など)の統一検索プラットフォームを必要とする場合に適している。そのGraphQLインターフェースは複雑なクエリロジックを持つアプリケーションに特に親しみやすい。

Weaviate · Open-source vector database

まず物語を読む。ここでは急いで定義を示さず、まず問題そのものを立ち上がらせる。

寓話

薬屋の店主は薬性、処方、禁忌を同じ薬斗の上に置いた

老舗の薬店には三つの独立した検索装置があった。一つは薬名で調べ、一つは症状で調べ、一つは処方で調べる。店主は分けて管理するのが最も明確だと言い、調剤師もそれに慣れていた。しかしある急症の処方箋があった。『麻黄湯と効能が近い処方を探し、ただし麻黄を含む薬は除外し、三歳以上の児童に適し、医療保険が使えること。』調剤師はまず処方棚を調べ、次に薬名棚で成分を調べ、さらに症状棚で禁忌を調べ、そして三つの紙の山を手作業で突き合わせた。

小弟子は対照表を一枚書いて壁に貼り、'麻黄湯→近似方→麻黄減→年齢加→医療保険加'の検索経路を並べた。二週間後、この表は例外と矢印でいっぱいになり、直接調べるより頭が混乱した。

三組の装置一式を一つの大きな総勘定の書類棚にまとめ、すべての属性を同じ行に記載しようという提案があった。統合すると確かに検索は簡単になったが、新たな問題が生じた。処方には文章で説明されたもの、数値指標で示されたもの、薬草の配合図になっているものがあり、すべてを固定の列に詰め込もうとすると、たちまち項目数が膨れ上がった。

新しく来た調剤総監は別のやり方に変えた。彼は各処方を独立したオブジェクトとして扱い、そこに同時に掛けた。類似度マッチング用の記述暗号群、正確な絞り込み用の構造化属性群、字句検索用のキーワード群、さらにカスタムの問答対と要約を掛ける空間も残した。

照会時、薬局はこれら三つの方式を同時に呼び出せる:文字記述で効能が最も近い処方を探し、構造化フィールドで禁忌と年齢を除外し、キーワードで'健脾''祛湿'のような用語を特定する。三つの信号を重み付け融合し、一度に結果を返す。

彼はさらにデータ機関上でクラス定義を行った。各クラスは属性型と索引方式をあらかじめ宣言していた。『方剤』クラスには薬材リスト、効能ベクトル、禁忌条件がある。『薬材』クラスには性味帰経ベクトル、価格、在庫がある。異なるクラス間は関連参照できる。

その後、薬局は外部データソースも接続した。医療保険目録、感染症通报、新薬承認公告。各データソースは同じデータ機関で接続され、処方オブジェクトは新しい情報を自動的に継承した。

老店主はついに認めた。処方は独立したフィールドの寄せ集めではなく、構造と意味を持ち、同時に多角的に検索できる完全な物であると。

明らかにする

この物語が語るのは:Weaviate

Weaviateはオープンソースのベクトルデータベースであり、ベクトル検索、構造化フィルタリング、キーワード検索(BM25)、およびschemaベースのオブジェクトストレージを組み合わせている。その核心的な設計理念は「すべてをベクトル化する」ことである。各データオブジェクトは同時にベクトル、構造化属性、キーワード転置インデックスを持ち、クエリ時には混合して重み付けして使用できる。WeaviateはGraphQLとRESTful API、自動ベクトル化(embeddingモデルの統合による)、マルチテナント、モジュール式拡張(summarizer、QA、NERなど)、およびhybrid searchのネイティブ実装をサポートする。企業RAGのシナリオでは、Weaviateはschema管理、ハイブリッド検索、マルチモーダルデータ(テキスト、画像など)の統一検索プラットフォームを必要とする場合に適している。そのGraphQLインターフェースは複雑なクエリロジックを持つアプリケーションに特に親しみやすい。

重要なのは、それが単なる用語ではなく、実際のAI/Agentシステムで繰り返し現れる構造的な問題だという点だ。これを理解して初めて、いつモデルを足すべきか、いつプロセスを変えるべきか、いつガバナンスを補うべきかを判断できる。

メタファーのマッピング

  • 三つの独立した検索システム:ベクトルストア、SQL データベース、検索エンジンが分離し、クエリはアプリケーション層で結合する
  • 壁に検索経路を貼り出す:アプリケーション層で複数データソースを編成するハードコードされたロジックは、脆く保守しにくい
  • フィールド爆発:すべての属性をフラットなテーブルに詰め込み、異なるデータ型には異なるインデックス戦略が必要であることを無視する
  • 独立オブジェクトに3種の情報を付与:Weaviateのデータモデル、ベクトル+属性+キーワードインデックスの共存
  • 暗号文を記述:ベクトル embedding、意味的類似度に使用
  • 構造化フィールド:精密なフィルタリングに使うスカラー属性(数値、日付、ブール、文字列など)
  • 3つのシグナルの重み付き融合:ハイブリッド検索のランク融合、キーワード+ベクトルの混合スコアリング
  • クラス定義とプロパティ型:Weaviate schema でデータ構造とインデックス戦略を事前に宣言する

Andy(任旭)判断

この概念の実戦的価値は、「賢く見えるAI機能」を納品可能、検収可能、ガバナンス可能な作業単位に分解する手助けをすることです。

ベクトルデータベースハイブリッド検索GraphQLsemantic searchRAG
京ICP备2026014272号