Manticore Search 支持使用特殊后缀来简化具有特定含义的数值。这些后缀分为大小后缀和时间后缀。后缀的常见格式是一个整数后跟一个字母,例如10k或100d。字母不区分大小写,因此10W和10w被视为相同。
Last modified: August 28, 2025
Manticore 配置支持 shebang 语法,允许配置以编程语言编写并在加载时解释。这使得动态设置成为可能,例如通过查询数据库表生成表,根据外部因素修改设置,或包含包含表和源声明的外部文件。
配置文件由声明的解释器解析,输出作为实际配置。此过程在每次读取配置时发生,而不仅仅是在 searchd 启动时。
注意:此功能在 Windows 平台上不可用。
在以下示例中,使用 PHP 创建多个不同名称的表,并扫描特定文件夹以查找包含额外表声明的文件:
#!/usr/bin/php
...
<?php for ($i=1; $i<=6; $i++) { ?>
table test_<?=$i?> {
type = rt
path = /var/lib/manticore/data/test_<?=$i?>
rt_field = subject
...
}
<?php } ?>
...
<?php
$confd_folder='/etc/manticore.conf.d/';
$files = scandir($confd_folder);
foreach($files as $file)
{
if(($file == '.') || ($file =='..'))
{} else {
$fp = new SplFileInfo($confd_folder.$file);
if('conf' == $fp->getExtension()){
include ($confd_folder.$file);
}
}
}
?>
Last modified: August 28, 2025
Manticore Search 的配置文件支持注释,这有助于在配置文件中提供说明或备注。# 字符用于开始注释部分。您可以将注释字符放在行首或行内。
使用注释时,在字符分词设置中使用 # 字符时要小心,因为其后的所有内容都会被忽略。为避免这种情况,请使用 # 的 UTF-8 代码,即 U+23。
如果需要在配置文件中使用 # 字符,例如在源声明中的数据库凭据中,可以使用反斜杠 \ 转义它。这样可以在设置中包含 # 字符,而不会被解释为注释的开始。
Last modified: August 28, 2025
index 和 source 声明中的继承功能使得具有相似设置或结构的表能够更好地组织,并减少配置的大小。父表和子表或源都可以利用继承。
父表或源不需要特定的配置。
在子表或源声明中,指定表或源名称,后跟冒号 (:) 和父名称:
table parent {
path = /var/lib/manticore/parent
...
}
table child:parent {
path = /var/lib/manticore/child
...
}
子表将继承父表的整个配置。子表中声明的任何设置都会覆盖继承的值。请注意,对于多值设置,在子表中定义单个值将清除所有继承的值。例如,如果父表有多个 sql_query_pre 声明,而子表有一个 sql_query_pre 声明,则所有继承的 sql_query_pre 声明都会被清除。要覆盖父表继承的一些值,请在子表中显式声明它们。如果不需要父表的某个值,也适用此规则。例如,如果不需要父表的 sql_query_pre 值,可以在子表中将该指令声明为空值,如 sql_query_pre=。
请注意,如果子表为某个多值设置声明了一个值,则不会复制该设置的现有值。
继承行为适用于字段和属性,而不仅仅是表选项。例如,如果父表有两个整数属性,而子表需要一个新的整数属性,则必须将父表的整数属性声明复制到子表配置中。
Last modified: August 28, 2025