async def _get_raw_search_results(
        self,
        db: AsyncSession,
        query: str,
        readable_id: str,
        current_user: schemas.User,
    ) -> list[dict]:
        """Get raw search results without cleaning (internal use only).

        This is used when we need the full content for AI completion generation.
        """
        collection = await crud.collection.get_by_readable_id(db, readable_id, current_user)
        if not collection:
            raise NotFoundException("Collection not found")

        destination_model = await crud.destination.get_by_short_name(db, "qdrant_native")
        if not destination_model:
            raise NotFoundException("Destination not found")

        destination_class = resource_locator.get_destination(destination_model)

        if settings.OPENAI_API_KEY:
            embedding_model = OpenAIText2Vec(api_key=settings.OPENAI_API_KEY)
        else:
            embedding_model = LocalText2Vec()

        vector = await embedding_model.embed(query)
        destination = await destination_class.create(collection_id=collection.id)

        return await destination.search(vector)
Get raw search results without cleaning (internal use only).

        This is used when we need the full content for AI completion generation.
        
backend/airweave/core/search_service.py