操作
バグ #417
未完了Phase 5.2: 高度検索・分析機能実装 - MeiliSearch統合
ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-09
期日:
進捗率:
0%
予定工数:
説明
🔍 高度検索・分析機能実装¶
🎯 実装目標¶
1. MeiliSearch統合¶
# Docker構成追加
claude-search-meilisearch:
image: getmeili/meilisearch:v1.3
container_name: claude-search-meilisearch
ports:
- "7700:7700"
environment:
- MEILI_ENV=production
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
2. 全文検索API実装¶
// 検索エンドポイント
POST /api/v2/search/conversations
- query: 検索キーワード
- filters: フィルタ条件
- limit: 結果件数
- offset: ページネーション
3. インデックス最適化¶
// MeiliSearch設定
- 検索可能属性: title, content, metadata
- フィルタ属性: created_at, message_count, content_types
- ソート属性: created_at, updated_at, message_count
- ハイライト: 検索語句強調表示
🔧 技術実装¶
検索サービス実装¶
// SearchService.ts
export class SearchService {
static async indexConversation(conversation: ProcessedConversation)
static async searchConversations(query: string, filters?: SearchFilters)
static async getSearchSuggestions(partial: string)
static async getSearchStats()
}
検索インデックス構造¶
{
"id": "conversation_uuid",
"title": "会話タイトル",
"content": "全メッセージ統合テキスト",
"message_count": 15,
"created_at": "2025-06-09T00:00:00Z",
"updated_at": "2025-06-09T06:00:00Z",
"content_types": ["text", "code", "artifact"],
"account_uuid": "user_uuid"
}
検索API実装¶
// 検索エンドポイント
router.post('/search/conversations', async (req, res) => {
const { query, filters, limit = 20, offset = 0 } = req.body;
const results = await SearchService.searchConversations(query, {
...filters,
limit,
offset
});
res.json({
success: true,
results: results.hits,
total: results.estimatedTotalHits,
query: results.query
});
});
📊 検索機能仕様¶
基本検索¶
- 全文検索: タイトル・内容全体
- 部分一致: 単語・フレーズ検索
- ファジー検索: スペルミス許容
- 検索候補: オートコンプリート
高度検索¶
- フィルタリング: 日付範囲・メッセージ数・コンテンツタイプ
- ソート: 関連度・日付・メッセージ数
- ページネーション: 効率的な結果表示
- ハイライト: 検索語句の強調表示
検索統計¶
- 人気キーワード: よく検索される語句
- 検索傾向: 時系列検索パターン
- パフォーマンス: 検索速度・ヒット率
- ユーザー行動: 検索→閲覧パターン
🎯 パフォーマンス目標¶
レスポンス時間¶
- 検索実行: < 100ms
- インデックス更新: < 1秒
- 検索候補: < 50ms
- 統計取得: < 200ms
スケーラビリティ¶
- 同時検索: 100+ リクエスト/秒
- インデックスサイズ: 10万件対応
- メモリ使用: < 2GB
- ディスク使用: < 10GB
📅 実装計画¶
Phase 5.2-1: MeiliSearch基盤 (2日)
- Docker構成追加
- MeiliSearch設定・起動
- 基本接続テスト
Phase 5.2-2: インデックス実装 (2日)
- SearchService実装
- 会話データインデックス化
- インデックス最適化
Phase 5.2-3: 検索API実装 (2日)
- 検索エンドポイント実装
- フィルタリング・ソート機能
- ページネーション対応
Phase 5.2-4: UI統合 (1日)
- 検索インターフェース
- 結果表示・ハイライト
- 統合テスト
🔗 関連チケット¶
📍 実装場所¶
/root/claude-search-system/docker-compose-search.yml
/root/claude-search-system/node-api/src/services/searchService.ts
/root/claude-search-system/node-api/src/routes/search.ts
表示するデータがありません
操作