[](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-1)def search( [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-2) query: str, [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-3) source: str = None, [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-4) content_types: list[str] = None, # ["text", "table", "image", "code"] [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-5) n_chunks: int = 10 [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-6)) -> dict: [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-7) """ [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-8) Search documents and get back content in the right format for reasoning. [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-9) Tables, images, and structured content are automatically formatted for [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-10) optimal analysis. [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-11) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-12) Simple tables return as Markdown for easy data work. Complex tables with [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-13) merged cells return as HTML so you can understand the relationships. [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-14) Images include both the visual content and searchable OCR text. [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-15) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-16) Args: [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-17) query: What you're looking for in natural language [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-18) source: Limit to specific document (optional) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-19) content_types: Filter by content type like ["table"] or ["image"] (optional) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-20) n_chunks: How many chunks to return (default: 10) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-21) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-22) Returns: [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-23) Content formatted appropriately for each type (Markdown, HTML, images with OCR) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-24) """ [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-25) pass [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-26) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-27)def load_pages(source: str, pages: list[int]) -> dict: [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-28) """ [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-29) Get complete pages when you need full context instead of fragments. [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-30) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-31) Use this when search shows multiple chunks from the same document - [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-32) usually better to read full pages than piece together fragments. [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-33) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-34) Args: [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-35) source: Document path (like "reports/Q3-2024.pdf") [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-36) pages: Which pages to load (like [3, 7, 12]) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-37) [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-38) Returns: [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-39) Complete page content with all formatting preserved [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-40) """ [](https://jxnl.co/writing/2025/08/27/facets-context-engineering/#__codelineno-4-41) pass