a lightweight search server powered by sqlite
Project description
scout is a RESTful search server written in Python. The search is powered by SQLite's full-text search extension, and the web application utilizes the Flask framework.
Scout aims to be a lightweight, RESTful search server in the spirit of ElasticSearch, 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.
- Documentation hosted on ReadTheDocs.
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 and
the provided Dockerfile.
Installation using pip:
$ pip install scout
You can also install the latest master branch using pip:
$ 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:
$ git clone https://github.com/coleifer/scout.git
$ cd scout/
$ pip install .
Using either of the above methods will also ensure the project's Python dependencies are installed: flask and peewee.
Check out the documentation for more information about the project.
Running scout
If you installed using pip, you should be able to simply run:
$ scout /path/to/search-index.db
If you've just got a copy of the source code, you can run:
$ 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:
$ 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:
$ cd scout/docker
$ docker build -t scout .
$ docker run -d \
--name my-scout-server \
-p 9004:9004 \
-v scout-data:/data \
scout
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scout-3.0.4.tar.gz.
File metadata
- Download URL: scout-3.0.4.tar.gz
- Upload date:
- Size: 41.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed5c47eb16f968a0a374bac0b3ee0e26a2699b1add1e8a7983ac060a36989a7f
|
|
| MD5 |
b2721fa13f3543005925b28c43c63ec4
|
|
| BLAKE2b-256 |
2ad684d00548f8850d150c6285b1933d1257e06138a63f371a3959f6cf157326
|
File details
Details for the file scout-3.0.4-py3-none-any.whl.
File metadata
- Download URL: scout-3.0.4-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5510d900c0927efc25850528907323516eadeedda474d71ddedd29f13ab06a73
|
|
| MD5 |
0dd6e9e6da8b0b604f105982f58c6b60
|
|
| BLAKE2b-256 |
558833905fe1cbb7a9a482674f2fdbf0190f1f7a2452e55057744fa281ad4c3e
|