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 声明中的继承能够更好地组织具有相似设置或结构的表,并减少配置的大小。父表和子表或父 source 和子 source 都可以使用继承。
父表或父 source 不需要特定的配置。
在子表或子 source 声明中,指定表或 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