📖参考文献
SQL 命令
表结构管理
CREATE TABLE - 创建新表
CREATE TABLE LIKE - 使用另一个表作为模板创建表
CREATE TABLE LIKE ... WITH DATA - 复制一个表
DESCRIBE - 打印出表的字段列表及其类型
ALTER TABLE - 更改表结构/设置
ALTER TABLE REBUILD SECONDARY - 更新/恢复二级索引
ALTER TABLE type='distributed' - 更新/恢复二级索引
ALTER TABLE RENAME - 重命名实时表
DROP TABLE IF EXISTS - 删除表(如果存在)
SHOW TABLES - 显示表列表
SHOW CREATE TABLE - 显示创建表的SQL命令
SHOW TABLE STATUS - 显示当前表的状态信息
SHOW TABLE SETTINGS - 显示表的设置
SHOW LOCKS - 显示有关冻结表的信息
数据管理
INSERT - 添加新文档
REPLACE - 使用新文档替换现有文档
REPLACE .. SET - 替换表中一个或多个字段
UPDATE - 对文档进行就地更新
DELETE - 删除文档
TRUNCATE TABLE - 删除表中的所有文档
备份
BACKUP - 备份你的表
SELECT
SELECT - 执行搜索
WHERE - 过滤条件
GROUP BY - 对搜索结果进行分组
GROUP BY ORDER - 对分组结果排序
GROUP BY HAVING - 对分组结果进行过滤
OPTION - 查询选项
FACET - 分面搜索
SUB-SELECTS - 使用 SELECT 子查询
JOIN - 在 SELECT 中进行表关联
EXPLAIN QUERY - 显示查询执行计划而不运行查询
SHOW META - 显示执行查询后的扩展信息
SHOW PROFILE - 显示已执行查询的分析信息
SHOW PLAN - 显示执行查询后的执行计划
SHOW WARNINGS - 显示最新查询的警告信息
刷新杂项
FLUSH ATTRIBUTES - 强制将更新的属性刷新到磁盘
FLUSH HOSTNAMES - 更新与代理主机名相关的IP地址
FLUSH LOGS - 重新打开searchd日志和查询日志文件(类似于USR1)
实时表优化
FLUSH RAMCHUNK - 强制创建一个新的磁盘块
FLUSH TABLE - 将实时表的RAM块刷新到磁盘
OPTIMIZE TABLE - 将实时表加入优化队列
导入到实时表
ATTACH TABLE - 将数据从普通表移动到实时表
IMPORT TABLE - 将之前创建的RT或PQ表导入到运行在RT模式下的服务器
复制
JOIN CLUSTER - 加入复制集群
ALTER CLUSTER - 向复制集群中添加/删除表
SET CLUSTER - 更改复制集群设置
DELETE CLUSTER - 删除复制集群
普通表轮换
RELOAD TABLE - 轮换普通表
RELOAD TABLES - 轮换所有普通表
事务
CALL
CALL SUGGEST, CALL QSUGGEST - 提供拼写纠正的词
CALL SNIPPETS - 从提供的数据和查询中构建高亮结果摘要
CALL PQ - 执行渗透查询
CALL KEYWORDS - 用于检查关键词如何被分词。还可以检索提供的关键词的分词形式
CALL AUTOCOMPLETE - 自动补全搜索查询
插件
CREATE FUNCTION - 安装用户定义函数(UDF)
DROP FUNCTION - 删除用户定义函数(UDF)
CREATE PLUGIN - 安装插件
CREATE BUDDY PLUGIN - 安装Buddy插件
DROP PLUGIN - 删除插件
DROP BUDDY PLUGIN - 删除Buddy插件
RELOAD PLUGINS - 重新加载给定库中的所有插件
ENABLE BUDDY PLUGIN - 重新激活之前禁用的Buddy插件
DISABLE BUDDY PLUGIN - 禁用活跃的Buddy插件
服务器状态
SHOW STATUS - 显示许多有用的性能计数器
SHOW THREADS - 列出所有当前活动的客户端线程
SHOW VARIABLES - 列出服务器级变量及其值
SHOW VERSION - 提供实例中各种组件的详细版本信息
HTTP 端点
/sql - 通过 HTTP JSON 执行 SQL 语句
/cli - 提供 HTTP 命令行界面
/insert - 向实时表插入文档
/pq/tbl_name/doc - 向渗透表添加 PQ 规则
/update - 更新实时表中的文档
/replace - 替换实时表中的现有文档,或者如果不存在则插入它
/pq/tbl_name/doc/N?refresh=1 - 替换渗透表中的 PQ 规则
/delete - 从表中删除文档
/search - 执行搜索
/search -> knn - 执行 KNN 向量搜索
/pq/tbl_name/search - 在渗透表中执行反向搜索
/tbl_name/_mapping - 以 Elasticsearch 样式创建表架构
常用操作
通用的表设置
普通表设置
分布式表设置
实时表设置
全文搜索操作符
NOT - NOT operator
@field - 字段搜索操作符
@field%5BN%5D - 字段位置限制修饰符
@(field1,field2,...) - 多字段搜索操作符
@!field - 忽略字段搜索操作符
@!(field1,field2,...) - 忽略多字段搜索操作符
@* - 全字段搜索操作符
"word1 word2 ... " - 短语搜索操作符
"word1 word2 ... "~N - 邻近搜索操作符
"word1 word2 ... "/N - 配额匹配操作符
word1 << word2 << word3 - 严格顺序操作符
=word1 - 精确形式修饰符
^word1 - 字段开头修饰符
word2$ - 字段结尾修饰符
word^N - 关键词 IDF 提升修饰符
word1 NEAR/N word2 - NEAR 操作符,通用邻近操作符
word1 NOTNEAR/N word2 - NOTNEAR 操作符,否定邻近操作符
ZONE:(h3,h4) - 区域限制操作符
ZONESPAN:(h2) - 区域跨度限制操作符
@@relaxed - 抑制关于缺失字段的错误
t?st - 通配符操作符
REGEX(/pattern/) - 正则表达式操作符
函数
数学函数
ABS() - 返回绝对值
ATAN2() - 返回两个参数的反正切函数
BITDOT() - 返回掩码的每个位与其权重相乘的乘积和
CEIL() - 返回大于或等于参数的最小整数值
COS() - 返回参数的余弦值
CRC32() - 返回参数的CRC32值
EXP() - 返回参数的指数值
FIBONACCI() - 返回第N个斐波那契数,N为整数参数
FLOOR() - 返回小于或等于参数的最大整数值
GREATEST() - 接受JSON/MVA数组作为参数,返回该数组中的最大值
IDIV() - 返回两个参数的整数除法结果
LEAST() - 接受JSON/MVA数组作为参数,返回该数组中的最小值
LN() - 返回参数的自然对数
LOG10() - 返回参数的常用对数
LOG2() - 返回参数的二进制对数
MAX() - 返回两个参数中较大的一个
MIN() - 返回两个参数中较小的一个
POW() - 返回第一个参数的幂,幂次由第二个参数指定
RAND() - 返回0到1之间的随机浮点数
SIN() - 返回参数的正弦值
SQRT() - 返回参数的平方根
搜索和排名
BM25F() - 返回精确的BM25F公式值
EXIST() - 将不存在的列替换为默认值
GROUP_CONCAT() - 生成组中文档属性值的逗号分隔列表
HIGHLIGHT() - 突出显示搜索结果
MIN_TOP_SORTVAL() - 返回当前前N个匹配项中最差元素的排序键值
MIN_TOP_WEIGHT() - 返回当前前N个匹配项中最差元素的权重
PACKEDFACTORS() - 输出加权因素
REMOVE_REPEATS() - 删除具有相同"列"值的重复调整行
WEIGHT() - 返回全文匹配分数
ZONESPANLIST() - 返回匹配的区域跨度对
QUERY() - 返回当前的全文查询
类型转换
BIGINT() - 强制将整数参数提升为64位类型
DOUBLE() - 强制将给定参数提升为浮点类型
INTEGER() - 强制将给定参数提升为64位有符号类型
TO_STRING() - 强制将参数提升为字符串类型
UINT() - 将给定参数转换为32位无符号整数类型
UINT64() - 将给定参数转换为64位无符号整数类型
SINT() - 将32位无符号整数解释为64位有符号整数
数组与条件
ALL() - 如果数组中所有元素的条件为真,返回1
ANY() - 如果数组中任意元素的条件为真,返回1
CONTAINS() - 检查(x,y)点是否位于给定的多边形内
IF() - 检查第一个参数是否等于0.0,如果不为零则返回第二个参数,否则返回第三个参数
IN() - 如果第一个参数等于其他任意一个参数,返回1,否则返回0
INDEXOF() - 遍历数组中所有元素,返回第一个匹配元素的索引
INTERVAL() - 返回小于第一个参数的参数的索引
LENGTH() - 返回MVA中的元素个数
REMAP() - 允许根据条件值对表达式值进行例外处理
时间和日期
NOW() - 返回当前时间戳作为一个整数
CURTIME() - 返回本地时区的当前时间
CURDATE() - 返回本地时区的当前日期
UTC_TIME() - 返回UTC时区的当前时间
UTC_TIMESTAMP() - 返回UTC时区的当前日期/时间
SECOND() - 从时间戳参数中返回秒数
MINUTE() - 从时间戳参数中返回分钟数
HOUR() - 从时间戳参数中返回小时数
DAY() - 从时间戳参数中返回天数
MONTH() - 从时间戳参数中返回月份
QUARTER() - 从时间戳参数中返回年份的季度数
YEAR() - 从时间戳参数中返回年份
DAYNAME() - 返回给定时间戳参数的星期几名称
MONTHNAME() - 返回给定时间戳参数的月份名称
DAYOFWEEK() - 返回给定时间戳参数的星期几索引
DAYOFYEAR() - 返回给定时间戳参数的年份中的第几天
YEARWEEK() - 返回给定时间戳参数的年份和当前周的第一天代码
YEARMONTH() - 从时间戳参数中返回年份和月份代码
YEARMONTHDAY() - 从时间戳参数中返回年份、月份和日期代码
TIMEDIFF() - 返回时间戳之间的差异
DATEDIFF() - 返回两个给定时间戳之间的天数
DATE() - 格式化时间戳参数中的日期部分
TIME() - 格式化时间戳参数中的时间部分
DATE_FORMAT() - 根据提供的日期和格式参数返回格式化字符串
地理空间
GEODIST() - 计算两个给定点之间的球面距离
GEOPOLY2D() - 创建一个考虑地球曲率的多边形
POLY2D() - 在平面空间中创建一个简单的多边形
字符串
CONCAT() - 连接两个或多个字符串
REGEX() - 如果正则表达式匹配属性字符串,返回1,否则返回0
SNIPPET() - 高亮显示搜索结果
SUBSTRING_INDEX() - 返回指定分隔符出现次数之前的子字符串
其他
CONNECTION_ID() - 返回当前连接ID
KNN_DIST() - 返回KNN向量搜索距离
LAST_INSERT_ID() - 返回当前会话中最后一个语句插入或替换的文档ID
配置文件中的通用设置
这些设置应放在配置文件的 common {}
部分:
lemmatizer_base - 词形还原器字典的基本路径
progressive_merge - 定义实时表中磁盘块合并的顺序
json_autoconv_keynames - 是否以及如何自动转换JSON属性中的键名
json_autoconv_numbers - 自动检测并转换可能表示数字的JSON字符串为数值属性
on_json_attr_error - 发现JSON格式错误时采取的处理方式
plugin_dir - 动态库和UDF的位置
indexer
是一个用于创建普通表的工具。
配置文件中的索引器设置
这些设置应放在配置文件的 indexer {}
部分:
lemmatizer_cache - 词形还原器缓存大小
max_file_field_buffer - 最大文件字段自适应缓冲区大小
max_iops - 索引的每秒最大I/O操作数
max_iosize - 允许的最大I/O操作大小
max_xmlpipe2_field - XMLpipe2源类型的最大允许字段大小
mem_limit - 索引RAM使用限制
on_file_field_error - 如何处理文件字段中的I/O错误
write_buffer - 写缓冲区大小
ignore_non_plain - 忽略关于非普通表的警告
索引器启动参数
--all - 从配置文件中重新构建所有表
--buildstops - 分析表源数据,仿佛正在索引数据,生成已索引的术语列表
--buildfreqs - 为 --buildstops 添加频率计数到表中
--config, -c - 指定配置文件的路径
--dump-rows - 将SQL源检索到的行导出到指定文件
--help - 显示所有可用参数
--keep-attrs - 在重新索引时重用现有属性
--keep-attrs-names - 指定要从现有表中重用的属性名称
--merge-dst-range - 在合并时应用给定的过滤范围
--merge-killlists - 更改合并表时删除列表的处理
--merge - 将两个普通表合并为一个
--nohup - 启用此选项时,阻止 indexer 发送 SIGHUP 信号
--noprogress - 隐藏进度详情
--print-queries - 输出 indexer 发送给数据库的 SQL 查询
--print-rt - 以 INSERT 方式显示从 SQL 源获取的数据以插入实时表
--quiet - 抑制所有输出
--rotate - 在所有表构建完毕后启动表轮换
--sighup-each - 在每个表构建后触发轮换
-v - 显示 indexer 版本
表转换器(适用于 Manticore v2 / Sphinx v2)
index_converter
是一个用于将由 Sphinx/Manticore Search 2.x 创建的表转换为 Manticore Search 3.x 表格式的工具。
表转换器启动参数
--config, -c - 表配置文件的路径
--index - 指定要转换的表
--path - 设置包含表的路径,而非使用配置文件
--strip-path - 从表中引用的文件名中移除路径
--large-docid - 允许转换 id 大于 2^63 的文档
--output-dir - 将新文件写入指定的文件夹
--all - 转换配置文件/路径中的所有表
--killlist-target - 设置用于应用 kill-list 的目标表
searchd
是 Manticore 服务器。
Searchd 配置文件中的设置
需要放在配置文件的 searchd {}
部分中:
access_blob_attrs - 定义如何访问表的 blob 属性文件
access_doclists - 定义如何访问表的文档列表文件
access_hitlists - 定义如何访问表的命中列表文件
access_plain_attrs - 定义搜索服务器如何访问表的普通属性
access_dict - 定义如何访问表的字典文件
agent_connect_timeout - 远程代理连接超时时间
agent_query_timeout - 远程代理查询超时时间
agent_retry_count - 指定 Manticore 尝试连接和查询远程代理的次数
agent_retry_delay - 失败后重试查询远程代理之前的延迟
attr_flush_period - 设置更新的属性刷新到磁盘的时间间隔
binlog_flush - 二进制日志事务刷新/同步模式
binlog_max_log_size - 二进制日志文件的最大大小
binlog_common - 所有表的通用二进制日志文件
binlog_filename_digits - 二进制日志文件名中的数字位数
binlog_flush - 二进制日志刷新策略
binlog_path - 二进制日志文件路径
client_timeout - 使用持久连接时等待请求的最大时间
collation_libc_locale - 服务器 libc 区域设置
collation_server - 默认服务器排序规则
docstore_cache_size - 内存中保存的文档存储块的最大大小
expansion_limit - 单个通配符的最大扩展关键字数量
grouping_in_utc - 启用使用 UTC 时区对时间字段进行分组
ha_period_karma - 代理镜像统计窗口大小
ha_ping_interval - 代理镜像 ping 的间隔
hostname_lookup - 主机名更新策略
jobs_queue_size - 定义同时允许的最大 "作业" 数量
listen - 指定 searchd 要监听的 IP 地址和端口或 Unix 域套接字路径
listen_backlog - TCP 监听队列长度
listen_tfo - 为所有监听器启用 TCP_FASTOPEN 标志
log - Manticore 服务器日志文件路径
max_batch_queries - 限制每批次的查询数
max_connections - 最大活动连接数
max_filters - 每个查询允许的最大过滤器数量
max_filter_values - 每个过滤器允许的最大值数量
max_open_files - 服务器允许打开的最大文件数
max_packet_size - 允许的最大网络数据包大小
mysql_version_string - 通过 MySQL 协议返回的服务器版本字符串
net_throttle_accept - 定义每次网络循环中接受的客户端数量
net_throttle_action - 定义每次网络循环中处理的请求数量
net_wait_tm - 控制网络线程的忙碌循环间隔
net_workers - 网络线程数
network_timeout - 客户端请求的网络超时时间
node_address - 指定节点的网络地址
persistent_connections_limit - 最大同时持久连接数到远程持久代理
pid_file - Manticore 服务器 pid 文件的路径
predicted_time_costs - 查询时间预测模型的成本
preopen_tables - 决定是否在启动时强制预先打开所有表
pseudo_sharding - 启用伪分片以对普通表和实时表进行搜索查询
qcache_max_bytes - 为缓存结果集分配的最大 RAM 大小
qcache_thresh_msec - 缓存查询结果的最小时间阈值
qcache_ttl_sec - 缓存结果集的过期时间
query_log - 查询日志文件路径
query_log_format - 查询日志格式
query_log_min_msec - 防止记录过快的查询
query_log_mode - 查询日志文件的权限模式
read_buffer_docs - 每个关键字的文档列表读取缓冲区大小
read_buffer_hits - 每个关键字的命中列表读取缓冲区大小
read_unhinted - 非提示读取大小
rt_flush_period - Manticore 将实时表的 RAM 块刷新到磁盘的频率
rt_merge_iops - 实时块合并线程允许的每秒最大 I/O 操作数
rt_merge_maxiosize - 实时块合并线程允许的最大 I/O 操作大小
seamless_rotate - 防止在旋转包含大量预缓存数据的表时 searchd 停顿
secondary_indexes - 启用二级索引用于搜索查询
server_id - 用作生成唯一文档 ID 的种子的服务器标识符
shutdown_timeout - Searchd
--stopwait
超时时间shutdown_token - 从 VIP SQL 连接调用
shutdown
命令所需的密码的 SHA1 哈希值snippets_file_prefix - 生成片段时在本地文件名前加的前缀(在
load_files
模式下)sphinxql_state - 当前 SQL 状态将序列化到的文件路径
sphinxql_timeout - 等待 MySQL 客户端请求的最大时间
ssl_ca - SSL 证书颁发机构证书文件路径
ssl_cert - 服务器的 SSL 证书路径
ssl_key - 服务器的 SSL 证书密钥路径
subtree_docs_cache - 公共子树文档缓存的最大大小
subtree_hits_cache - 每个查询的公共子树命中缓存的最大大小
timezone - 日期/时间相关函数使用的时区
thread_stack - 作业的最大堆栈大小
unlink_old - 在成功旋转时是否取消链接 .old 表副本
watchdog - 是否启用或禁用 Manticore 服务器看门狗
Searchd 启动参数
--config, -c - 指定配置文件路径
--console - 强制服务器以控制台模式运行
--coredump - 启用崩溃时保存核心转储
--cpustats - 启用 CPU 时间报告
--delete - 从 Microsoft 管理控制台和注册服务的位置删除 Manticore 服务
--force-preread - 在表文件预读取之前阻止服务器处理传入连接
--help, -h - 显示所有可用参数
--table (--index) - 限制服务器仅服务指定表
--install - 将 searchd 安装为 Microsoft 管理控制台中的服务
--iostats - 启用输入/输出报告
--listen, -l - 覆盖配置文件中的 listen
--logdebug, --logdebugv, --logdebugvv - 启用服务器日志中的附加调试输出
--logreplication - 启用服务器日志中的额外复制调试输出
--new-cluster - 初始化复制集群并将服务器设置为具有集群重启保护的参考节点
--new-cluster-force - 初始化复制集群并将服务器设置为参考节点,绕过集群重启保护
--nodetach - 使 searchd 保持在前台运行
--ntservice - Microsoft 管理控制台用于在 Windows 平台上作为服务启动 searchd
--port, p - 指定 searchd 应监听的端口,忽略配置文件中指定的端口
--replay-flags - 设置额外的二进制日志重放选项
--servicename - 将指定的名称分配给 searchd,当安装或删除服务时,在 Microsoft 管理控制台中显示
--status - 查询正在运行的搜索服务以返回其状态
--stop - 停止 Manticore 服务器
--stopwait - 优雅地停止 Manticore 服务器
--strip-path - 从表引用的所有文件名中移除路径名
-v - 显示版本信息
Searchd 环境变量
MANTICORE_TRACK_DAEMON_SHUTDOWN - 启用 searchd 关闭期间的详细日志记录
多功能表维护工具,帮助进行故障排除。
Indextool 启动参数
用于转储与物理表相关的各种调试信息。
--config, -c - 指定配置文件路径
--quiet, -q - 保持 indextool 安静;无横幅输出等
--help, -h - 列出所有可用参数
-v - 显示版本信息
Indextool - 验证配置文件
--buildidf - 从一个或多个字典转储文件中生成 IDF 文件
--build-infixes - 为现有 dict=keywords 表构建中缀
--dumpheader - 快速转储提供的表头文件
--dumpconfig - 从给定的表头文件中转储表定义,格式几乎符合 manticore.conf
--dumpheader - 根据表名转储表头,查找配置文件中的表头路径
--dumpdict - 转储表字典
--dumpdocids - 根据表名转储文档 ID
--dumphitlist - 转储指定表中给定关键字/ID 的所有出现
--docextract - 在整个字典/文档/命中上运行表检查,并收集属于请求文档的所有单词和命中
--fold - 基于表设置测试标记化
--htmlstrip - 使用指定表的 HTML 剥离器设置过滤 STDIN
--mergeidf - 将多个 .idf 文件合并为一个文件
--morph - 对提供的 STDIN 应用形态处理,并将结果输出到 stdout
--check - 检查表数据文件的一致性
--check-id-dups - 检查重复的 ID
--check-disk-chunk - 检查 RT 表的单个磁盘块
--strip-path - 从表引用的所有文件名中移除路径名
--rotate - 确定在使用
--check
时是否检查等待旋转的表--apply-killlists - 对配置文件中列出的所有表应用 kill-lists
将复合词拆分为其组成部分。
Wordbreaker 启动参数
STDIN - 接受一个要拆分为部分的字符串
-dict - 指定要使用的字典文件
split|test|bench - 指定命令
使用 ispell 或 MySpell 格式提取字典文件的内容
dictionary - 主要字典文件
affix - 字典的词缀文件
result - 指定字典数据的输出目标
locale-name - 指定要使用的区域设置详情
保留关键字列表
Manticore SQL 语法中当前保留的关键字的完整按字母顺序排列的列表(因此,不能将其用作标识符)。
旧版本Manticore的文档
最后更新于