Karp后端
karp-backend-5的Python项目详细描述
卡普后端
主人
此包-代码和文档-仍在构建中。
Karp是Språkbanken的词汇平台。 现在迁移到了python3.6+。在
码头卡普
为了便于测试,使用Docker来运行Karp-b
- 在
按照给定的步骤here
在 - 在
运行
在docker-compose up -d
- 在
通过运行
在curl localhost:8081/app/test
来测试它
如果您想使用没有Docker的卡普,请继续阅读。
先决条件
- ElasticSearch6
- SQL,最好是MariaDB
- WSGI服务器 例如mod_wsgi和{a9}一起,女服务员,Gunicorn,uWSGI。在
- 身份验证服务器。阅读更多关于这个here
- Python >= 3.6带{a12}
安装
Karp使用python的virtuals envs。要开始跑步:
- 运行
make install
- 或者:
- 使用
python3 -m venv venv
创建虚拟环境。在 - 使用
source venv/bin/activate
激活虚拟环境。在 pip install -r requirements.txt
- 使用
配置
设置环境变量KARP5_INSTANCE_PATH
和KARP5_ELASTICSEARCH_URL
:
- 使用
export VAR=value
- 或者使用
VAR=value
在克隆路径的根目录中创建一个文件.env
KARP5_INSTANCE_PATH
-配置所在的路径。如果已克隆此repo,则可以使用/path/to/karp-backend/
。在KARP5_ELASTICSEARCH_URL
-elasticsearch的url。通常localhost:9200
将config.json.example
复制到config.json
并进行更改。
您还需要为您的词典进行配置。
阅读更多here。在
测试
TODO:做更多的测试!
通过键入:make test
运行测试
启动karp-backend
以测试它是否正常工作
make run
或{
已知的错误
执行时,statistics
调用的计数可能不准确
大索引上的子聚集(多个存储桶),除非查询
限制搜索空间。使用
^{
可能的解决方法:
- 请改用composite aggregation,但这不适用于筛选。在
- 设置一个更大的碎片大小(27000适用于saldo),但这可能会破坏您的ES集群。在
- 拥有较小的索引(每个索引一个词典),但这对于大词典或统计数据来说并没有帮助。在
- 不允许深度超过2的子聚集。改变
size
也无济于事。在
弹性搜索
如果保存因Database Exception: Error during update. Message: TransportError(403, u'cluster_block_exception', u'blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];').
而停止工作,则需要解锁相关的ES索引。在
你就是这样做的:
对与您相关的host
和port
的每个组合重复此操作。但是每个集群只需要执行一次。在
- 检查是否有索引被锁定:
curl <host>:<port>/_all/_settings/index.blocks*
- 如果全部打开,则Elasticsearch用
{}
进行回答 - 否则它的答案是
{<index>: { "settings": { "index": { "blocks": {"read_only_allow_delete": "true"} } } }, ... }
- 如果全部打开,则Elasticsearch用
- {and{27}上的所有索引都已锁定:
curl -X PUT <host>:<port>/_all/_settings -H 'Content-Type: application' -d '{"index.blocks.read_only_allow_delete": null}'
- 项目
标签: