Files
basicmachines-co-basic-memory/src/basic_memory/api/routers/search_router.py
T
2025-01-04 20:14:36 -06:00

31 lines
993 B
Python

"""Router for search operations."""
from fastapi import APIRouter, Depends, BackgroundTasks
from typing import List
from loguru import logger
from basic_memory.services.search_service import SearchService
from basic_memory.schemas.search import SearchQuery, SearchResult
from basic_memory.deps import get_search_service
router = APIRouter(prefix="/search", tags=["search"])
@router.post("/", response_model=List[SearchResult])
async def search(
query: SearchQuery,
search_service: SearchService = Depends(get_search_service)
):
"""Search across all knowledge and documents."""
return await search_service.search(query)
@router.post("/reindex")
async def reindex(
background_tasks: BackgroundTasks,
search_service: SearchService = Depends(get_search_service)
):
"""Recreate and populate the search index."""
await search_service.reindex_all(background_tasks=background_tasks)
return {
"status": "ok",
"message": "Reindex initiated"
}