scout¶

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 aims to be a lightweight, RESTful search server in the spirit of [ElasticSearch](https://www.elastic.co), powered by the SQLite full-text search extension. In addition to search, Scout can be used as a document database, supporting complex filtering operations. Arbitrary files can be attached to documents and downloaded through the REST API.
Scout is simple to use, simple to deploy and just works.
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.
named in honor of the best dog ever,
Table of contents¶
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/”
- Example of using Authentication
- Configuration and Command-Line Options
- Python Configuration File
- Scout Client
- Deployment
- Hacks