scout is a RESTful search server written in Python with a focus on using lightweight components:
- search powered by sqlite’s full-text search extension
- database access coordinated using peewee ORM
- web application built with flask framework
scout has the following features:
- multiple search indexes present in a single database.
- restful design for easy indexing and searching.
- simple key-based authentication (optional).
- lightweight, low resource utilization, minimal setup required.
- store search content and arbitrary metadata.
- attach files or BLOBs to indexed documents.
- multiple result ranking algorithms, porter stemmer.
- besides full-text search, perform complex filtering based on metadata values.
- comprehensive unit-tests.
- supports SQLite FTS4 and the brand-new FTS5.
named in honor of the best dog ever,
Table of contents¶
- Installing and Testing
- Scout Server
- API Endpoints
- Index list: “/”
- Index detail: “/:index-name/”
- Filtering on Metadata
- Document list: “/documents/”
- Document detail: “/documents/:document-id/”
- Attachment list: “/documents/:document-id/attachments/”
- Attachment detail: “/documents/:document-id/attachments/:filename/”
- Attachment download: “/documents/:document-id/attachments/:filename/download/”
- Attachment search: “/documents/attachments/search/”
- Example of using Authentication
- Configuration and Command-Line Options
- Python Configuration File
- Scout Client