Skip to main content

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

Production-ready server

Scout comes with a production-ready WSGI server powered by gevent. To use this server instead, you can run:

$ scout_wsgi /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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scout-3.1.0.tar.gz (55.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scout-3.1.0-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file scout-3.1.0.tar.gz.

File metadata

  • Download URL: scout-3.1.0.tar.gz
  • Upload date:
  • Size: 55.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scout-3.1.0.tar.gz
Algorithm Hash digest
SHA256 3445c082aafb657dd8ea592f706b6466a9fef26cec812a6a23807251df7f674d
MD5 1cb481622cab27e9f41e412f6a741f54
BLAKE2b-256 728565a763e59b96719500e2a1816e29d2944efe8adcc57a7c71abf1b324f48b

See more details on using hashes here.

File details

Details for the file scout-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: scout-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scout-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b1ad4237b82702a2a5756432caa9d32e4e27a834d9da6f06f5bbd668e21fe51
MD5 d5b97bac75d2bf4aaea26868b3d6d3a0
BLAKE2b-256 0f1a1d23342cb5baca3f7ce8442616b6eb3dd2dd63d9c7b683cea287ee67fed7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page