UNPKG

@shirokuma-library/mcp-knowledge-base

Version:

MCP server for AI-powered knowledge management with semantic search, graph analysis, and automatic enrichment

43 lines (42 loc) 1.55 kB
export class SearchQueryParser { parse(query) { const filters = {}; const keywords = []; const filterPattern = /(\w+):([^\s]+)/g; let remaining = query; const matches = []; let match; while ((match = filterPattern.exec(query)) !== null) { const [fullMatch, key, value] = match; matches.push({ key, value, fullMatch }); } for (const { key, value, fullMatch } of matches) { switch (key) { case 'status': if (!filters.status) filters.status = []; filters.status.push(value); break; case 'type': if (!filters.type) filters.type = []; filters.type.push(value); break; case 'is': if (value === 'open' || value === 'closed') { filters.is = value; } break; case 'priority': if (!filters.priority) filters.priority = []; filters.priority.push(value.toUpperCase()); break; } remaining = remaining.replace(fullMatch, ' '); } const remainingWords = remaining.trim().split(/\s+/).filter(w => w.length > 0); keywords.push(...remainingWords); return { keywords, filters, raw: query }; } }