ESQL配置¶
UWSGI配置¶
conf/uwsgi.ini
[uwsgi]
http-socket = :8001 ; esql服务端口号
processes = 5 ; 开启进程数
threads = 5 ; 每个进程开启的线程数
chdir = websql
module = eweb:app
daemonize = log/uwsgi.log ; uwsgi 日志路径
ESql配置¶
conf/esql.yml
!!! 生产环境中必须修改系统主密钥: secret_key (在「API接口相关设置」中)!!!
ElasticSearch 服务配置:
elastic: {
# ES 服务器版本 1.x 或 2.x 这里的x不能换成具体的版本数字
version: 2.x,
# ES 服务器集群
hosts: [
{
host: 10.68.23.85,
port: 9200
},
{
host: 10.68.23.86,
port: 9200
}
]
}
特性相关设置:
feature: {
# string字段默认是否分词 false: 不分词, true: 分词 (不指定时, 使用 ES 配置的默认分词器)
string_analyzed_default: false,
# 默认是否搜索该字段的所有类型的分词 false: 不指定分词器时只搜索字段 true: 不指定分词时也搜索该字段的所有分词
# !!!注意 !!! 开启该选项会导致 OBJECT 和 FILE 字段的部分查询功能无法使用( = 匹配)
query_all_analyzer_default: false,
# 对不使用 limit 的查询, 能够获取的最大记录数 (比如 get meta), 超出时: 超出部分数据不会返回, 并且返回 state 为 DataMaxSizeOverstep
result_data_max_size: 102400,
# 删除记录方式 disable: 不支持删除记录 single(默认): 支持删除记录(只能单条) batch: 支持根据 WHERE 条件批量删除
record_delete_mode: batch,
# 请求超时设置(单位秒), 除了默认设置(default), 还可以为 select、scan、scroll、bulk、flush、create_table、...进行单独设置
request_timeout: {
default: 120,
bulk: 30,
select: 300,
scan: 300,
scroll: 300,
},
}
权限相关设置:
acl: {
# 是否开启认证, false: 免认证
need_auth: true,
# 是否允许 root 帐号在远程主机(非本机)访问 ESql
root_allow_remote: true,
# 是否开启红名单, false: 不开启(默认) true: 开启(需要设置 need_auth 为 true)
# 开启红名单后,往名单中添加信息(如身份证号)。查询时记录中包含这些信息,则该记录所以字段都会被马赛克(换成*号显示)
redkeys: false
}
API接口相关设置:
api: {
debug: false,
# Session 加密密钥, 涉及系统安全, 部署时请务必更改
secret_key: 'jmN]LyX HHWR8j/3R7dZrTB0~X!8j !!! please change it !!! jmN]LyX HHWR8j/3R7dZrTB0~X!8j',
# Session(用户登录后的)过期时间, 单位分钟
session_lifetime: 300,
}
用户权限数据库设置:
database: {
dbms: lite, # 默认使用的是内置的sqlite数据库,也可配置为其它关系型数据库(如MySQL、PostgreSQL)
database: db/esql.dat
}
文件检索相关配置(文件存储路径):
file_server: {
# 文件服务器类型 local: ESql服务器硬盘
type: local,
# 目录地址, type为local时必须指定(使用相对路径时,当前目录为esql安装目录)
path: files/
}
解释器配置:
parser: {
debug: false, # 调试模式
optimize: false # 性能优化
}
ElasticSearch初始化¶
如果需要使用系统元数据(meta)或开启红名单功能,需要在ESql终端中执行如需SQL。
-- 元数据管理
-- DROP TABLE sys_meta;
CREATE TABLE sys_meta.base(
'index' STRING {index=not_analyzed},
'type' STRING {index=not_analyzed},
'field' STRING {index=not_analyzed},
zh STRING {index=not_analyzed},
cc STRING {index=not_analyzed},
timestamp DATE {format=dateOptionalTime},
timestamp2 DOUBLE
);
-- 红名单功能
-- DROP TABLE redkeys;
CREATE TABLE redkeys.base(
secret_key STRING {index=not_analyzed}
);