AskTable 的 AI 搜索(值索引) 是私有部署里的可选组件,为「AI 索引」这个能力提供后端支撑:它把表里字符串字段的去重值建成索引,用户用简称或口语(“阿里巴巴”、“Mate 40”)提问时,自动匹配到数据库里真实存的完整值,生成正确的查询条件。
底层由 aisearch 搜索引擎承载。不部署 aisearch 时这个功能整体不可用——控制台里给字段开「AI 索引」会提示未启用,问数时也不会做值匹配(其它功能不受影响)。
在 compose 里启用
分两步:加一个 aisearch 服务,再把它的地址和密钥告诉 asktable。
1. 加 aisearch 服务
给 私有部署 的 docker-compose.yaml 加上这个服务:
services:
# aisearch 搜索引擎(可选):值索引的存储与检索
asktable-aisearch:
image: registry.cn-shanghai.aliyuncs.com/dminfra/aisearch:v1.12.8
container_name: asktable-aisearch
restart: unless-stopped
environment:
MEILI_MASTER_KEY: asktable-aisearch-master-key # 【建议修改】至少 16 字节
MEILI_ENV: production # 生产模式:强制鉴权、关闭搜索预览页
MEILI_NO_ANALYTICS: "true" # 关闭遥测上报
volumes:
- ./aisearch_data:/meili_data # 索引数据持久化(引擎数据目录)
它只在 compose 内部网络里被 asktable 访问,不用对外暴露端口。
2. 让 asktable 用上它
在 asktable 服务的 environment 里加两个变量,并在 depends_on 里加上它:
services:
asktable:
depends_on:
- asktable-aisearch # 追加这一行
environment:
AISEARCH_HOST: http://asktable-aisearch:7700
AISEARCH_MASTER_KEY: asktable-aisearch-master-key # 必须与上面 MEILI_MASTER_KEY 完全一致
AISEARCH_MASTER_KEY 必须和上面 aisearch 的 MEILI_MASTER_KEY 一字不差,否则 asktable 连不上,功能仍然不可用。生产环境务必把示例里的默认密钥换成自己的随机串(MEILI_ENV: production 下密钥至少 16 字节,否则 aisearch 拒绝启动)。
改完执行 docker compose up -d 生效。
建立与重建索引
两个环境变量配好后,AI 搜索才真正启用。索引由后台任务异步构建,跑在既有的 asktable-redis 队列上,无需额外组件:
- 逐字段开关:进数据源的数据概览标签页,选中一张表,在字段表格的「AI 索引」列逐个开启——用法和统计详情见 AI 索引。
- 整源构建 / 重建:需要一次性为某个数据源重建全部值索引时,在数据源页点「构建 Value Index」即可。
默认只为短文本字符串字段建索引(长文本、日期、数字不建)。单个数据源可建值索引的字段数有上限(默认 10 个),可在管理后台调整;单字段保留的去重值数量也有上限。这些限制是为了避免索引过多拖慢系统、引入噪音。
aisearch 自包含、运行期不外呼,适合完全离线 / 内网部署。
下一步