Scout是一个用Python编写的RESTful搜索服务器。搜索功能由SQLite的全文搜索扩展提供支持,而Web应用程序则使用Flask框架。
Scout旨在成为一个轻量级的、RESTful的搜索服务器,类似于ElasticSearch的理念,由SQLite全文搜索扩展驱动。除了搜索功能,Scout还可以用作文档数据库,支持复杂的过滤操作。可以将任意文件附加到文档上,并通过REST API下载。
Scout使用简单,部署方便,而且"开箱即用"。
特点:
- 单个数据库中包含多个搜索索引。
- RESTful设计,便于索引和搜索。
- 简单的基于密钥的身份验证(可选)。
- 轻量级,资源占用少,设置简单。
- 存储搜索内容和任意元数据。
- 多种结果排序算法,Porter词干提取器。
- 除全文搜索外,还可以基于元数据值进行复杂过滤。
- 全面的单元测试。
- 支持SQLite FTS4。
- 文档托管在ReadTheDocs上。
安装
Scout可以通过pip从PyPI安装,也可以使用git从源代码安装。从PyPI安装可以获得最新版本,而从git安装则确保你获得最新的更改。
另外,你也可以使用docker和提供的Dockerfile来运行Scout。
使用pip安装:
$ pip install scout
你也可以使用pip安装最新的master分支:
$ pip install -e git+https://github.com/coleifer/scout.git#egg=scout
如果你想从源代码安装,首先克隆代码并运行setup.py install:
$ git clone https://github.com/coleifer/scout.git
$ cd scout/
$ python setup.py install
使用上述任何方法都会确保安装项目的Python依赖:flask和peewee。
查看文档以获取更多关于项目的信息。
运行Scout
如果你使用pip安装,你应该可以直接运行:
$ scout /path/to/search-index.db
如果你只是获得了源代码的副本,你可以运行:
$ python scout/ /path/to/search-index.db
Docker
要使用docker运行Scout,你可以使用提供的Dockerfile或直接从dockerhub拉取coleifer/scout镜像:
$ docker run -it --rm -p 9004:9004 coleifer/scout
# Scout现在运行在0.0.0.0:9004上
本地构建你自己的镜像并运行:
$ cd scout/docker
$ docker build -t scout .
$ docker run -d \
--name my-scout-server \
-p 9004:9004 \
-v scout-data:/data \
scout