Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coleifer/scout
RESTful search server written in Python, powered by SQLite.
https://github.com/coleifer/scout
flask full-text-search python search search-engine sqlite
Last synced: 4 days ago
JSON representation
RESTful search server written in Python, powered by SQLite.
- Host: GitHub
- URL: https://github.com/coleifer/scout
- Owner: coleifer
- License: mit
- Created: 2015-03-25T22:49:52.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-10-15T14:52:10.000Z (3 months ago)
- Last Synced: 2025-01-11T09:07:06.899Z (11 days ago)
- Topics: flask, full-text-search, python, search, search-engine, sqlite
- Language: Python
- Homepage: http://scout.readthedocs.org/en/latest/
- Size: 189 KB
- Stars: 304
- Watchers: 10
- Forks: 26
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
![](http://media.charlesleifer.com/blog/photos/scout-logo.png)
[scout](https://scout.readthedocs.io/en/latest/) is a RESTful search server
written in Python. The search is powered by [SQLite's full-text search extension](http://sqlite.org/fts3.html),
and the web application utilizes the [Flask](http://flask.pocoo.org) 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.
* Multiple result ranking algorithms, porter stemmer.
* Besides full-text search, perform complex filtering based on metadata values.
* Comprehensive unit-tests.
* Supports SQLite [FTS4](http://sqlite.org/fts3.html).
* [Documentation hosted on ReadTheDocs](https://scout.readthedocs.io/en/latest/).![](https://api.travis-ci.org/coleifer/scout.svg?branch=master)
## Installation
Scout can be installed from PyPI using `pip` or from source using `git`. Should
you install from PyPI you will run the latest version, whereas installing from
`git` ensures you have the latest changes.Alternatively, you can run `scout` using [docker](https://www.docker.com/) and
the provided [Dockerfile](https://github.com/coleifer/scout/blob/master/docker/Dockerfile).Installation using pip:
```console
$ pip install scout
```You can also install the latest `master` branch using pip:
```console
$ pip install -e git+https://github.com/coleifer/scout.git#egg=scout
```If you wish to install from source, first clone the code and run `setup.py install`:
```console
$ git clone https://github.com/coleifer/scout.git
$ cd scout/
$ python setup.py install
```Using either of the above methods will also ensure the project's Python
dependencies are installed: [flask](http://flask.pocoo.org) and
[peewee](http://docs.peewee-orm.com).[Check out the documentation](https://scout.readthedocs.io/en/latest/) for more information about the project.
## Running scout
If you installed using `pip`, you should be able to simply run:
```console
$ scout /path/to/search-index.db
```If you've just got a copy of the source code, you can run:
```console
$ python scout/ /path/to/search-index.db
```## Docker
To run scout using docker, you can use the provided Dockerfile or simply pull
the `coleifer/scout` image from dockerhub:```console
$ docker run -it --rm -p 9004:9004 coleifer/scout
# scout is now running on 0.0.0.0:9004
```Build your own image locally and run it:
```console
$ cd scout/docker
$ docker build -t scout .
$ docker run -d \
--name my-scout-server \
-p 9004:9004 \
-v scout-data:/data \
scout
```