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.
- 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¶
- 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