インデックス階層:ベクトル、ツリー、キーワード
VectorStoreIndex(デフォルト)、TreeIndex(要約)、KeywordTableIndex(スパース)を比較します。
「インデックス階層:ベクトル、ツリー、キーワード」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
LlamaIndex のインデックス
LlamaIndex では、検索用のデータ構造を「インデックス」と呼びます。いくつかの種類があり、それぞれ適したタスクが異なります。
VectorStoreIndex(デフォルト)
埋め込みベースの標準的なインデックスです。日常的に使う基本の選択肢です:
from llama_index.core import VectorStoreIndex
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
print(query_engine.query('What is in the handbook?'))TreeIndex
階層的な要約ツリーを構築します。要約クエリに便利です:
from llama_index.core import TreeIndex
index = TreeIndex.from_documents(documents)
# Internal nodes are summaries of their children.
# Good for 'summarise the whole corpus' tasks.KeywordTableIndex
従来型のキーワードベースのインデックスです。埋め込みベースの検索がまれな用語に対してうまく機能しない場合に使います:
from llama_index.core import KeywordTableIndex
index = KeywordTableIndex.from_documents(documents)
# Falls back to exact-match for rare technical terms.SummaryIndex(以前の ListIndex)
すべてのチャンクをフラットなリストにまとめます。LLM にすべてのデータを見せたい場合に便利です:
from llama_index.core import SummaryIndex
index = SummaryIndex.from_documents(documents)
# Best for short corpora where you can stuff everything into context.KnowledgeGraphIndex
ドキュメントからナレッジグラフ(エンティティと関係)を抽出します:
from llama_index.core import KnowledgeGraphIndex
index = KnowledgeGraphIndex.from_documents(
documents,
max_triplets_per_chunk=10
)インデックスの選択
| タスク | インデックス |
|---|---|
| 類似度による Q&A | VectorStoreIndex |
| コーパス全体の要約 | TreeIndex / SummaryIndex |
| まれな完全一致の用語 | KeywordTableIndex |
| 関係に基づく事実 | KnowledgeGraphIndex |
インデックスの構成
インデックスを組み合わせることもできます。たとえば、ドキュメントごとのベクトルインデックスの上に要約ツリーを構築できます:
from llama_index.core import ComposableGraph
graph = ComposableGraph.from_indices(
TreeIndex,
[vector_index_doc_1, vector_index_doc_2, ...],
index_summaries=['Doc 1 summary', 'Doc 2 summary']
)Persisting an Index
index.storage_context.persist(persist_dir='./store')
# Reload later:
from llama_index.core import StorageContext, load_index_from_storage
ctx = StorageContext.from_defaults(persist_dir='./store')
index = load_index_from_storage(ctx)外部ベクトルストアの利用
LlamaIndex は Pinecone、Qdrant、Weaviate などと組み合わせて使えます:
from llama_index.vector_stores.pinecone import PineconeVectorStore
from llama_index.core import StorageContext, VectorStoreIndex
vector_store = PineconeVectorStore(pinecone_index=pc_index)
storage = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(documents, storage_context=storage)ハイブリッド検索
個別のインデックスと検索結果を統合するクエリエンジンを使って、ベクトル検索とキーワード検索を組み合わせます。
インデックスの更新
ドキュメントを更新する場合、LlamaIndex は段階的な更新に対応しています:
index.refresh_ref_docs(updated_documents)要約用インデックス
「コーパス全体を要約する」のに最適な LlamaIndex のタイプはどれでしょうか。
復習
タスクに合ったインデックスを選びます。まずは VectorStoreIndex を使い、専門的な要件には TreeIndex、KeywordTableIndex、または KnowledgeGraphIndex を選択します。
よくある質問
「インデックス階層:ベクトル、ツリー、キーワード」レッスンは無料ですか?
はい。「インデックス階層:ベクトル、ツリー、キーワード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「インデックス階層:ベクトル、ツリー、キーワード」で何を学びますか?
VectorStoreIndex(デフォルト)、TreeIndex(要約)、KeywordTableIndex(スパース)を比較します。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「インデックス階層:ベクトル、ツリー、キーワード」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ドキュメントローダーとパーサー
- インデックス階層:ベクトル、ツリー、キーワード
- クエリエンジンとレスポンス合成
- サブクエリ分解戦略