关于新的实时模式

你好!

3.3.0 中,我们引入了一种新的守护进程模式。我们称之为 实时模式(RT模式)。它允许使用 CREATE TABLEDROP TABLE 管理您的索引(表)。 纯模式 仍然支持,该模式假设在配置文件中定义索引架构。

在此之前,您可以从实时索引中插入和删除数据,但无法通过 SQL/HTTP 添加和删除索引。

通过在配置文件中指定 data_dir 来启用新模式。请注意,配置文件仅用于守护进程设置,此模式下不允许 sourceindex 部分。
现在可以使用 ALTER TABLE 来更改索引设置,例如:

ALTER TABLE products ignore_chars='.'

然而,这些新设置仅影响新插入的文档;它们不会影响索引中的现有文档。

data_dir


data_dir 指定了将存储所有新索引的目录。每个索引都存储在 data_dir 内的单独文件夹中。您不应手动将索引添加到此文件夹,因为在新 RT 模式下运行的守护进程创建的索引在内部与在纯模式下创建的索引不同。使用 IMPORT TABLE 导入旧索引。它将索引文件复制到 data_dir 内的新文件夹,并执行必要的索引格式更改。
有关索引差异的更多详细信息,请参见下文。
RT模式 仅适用于RT或PQ索引。您无法创建或导入纯索引到在此模式下运行的守护进程。一个可能的解决方案是使用 ATTACH 将纯索引添加到RT索引(在运行旧模式的守护进程中),然后使用 IMPORT TABLE 将该RT索引导入到在RT模式下运行的守护进程中。

如何备份


由于您不应该手动操作 data_dir 的内容,目前备份或将 data_dir 移动到其他位置的唯一安全方法是关闭守护进程,复制/移动 data_dir,然后重新启动守护进程。

复制


由于 复制 在节点上创建/删除索引,因此它仅适用于在新RT模式下运行的守护进程。

外部文件


CREATE TABLEALTER TABLE 中仅允许外部文件(词形、停用词、例外)的绝对路径。这是为了避免混淆,因为相对路径是相对于启动守护进程的文件夹,而用户可能不知道这一点。

实现细节


data_dir 包含索引和列出这些索引及其某些属性的 .json 文件。该文件由守护进程修改,您不应手动更改它。

.json 配置文件中的所有路径都是相对的。这样做的目的是您可以将 data_dir 复制/移动到新的节点/位置,修改配置文件中的 data_dir,并从新位置运行守护进程,而无需任何额外更改。

在RT模式与纯模式下创建的索引之间也存在索引格式的差异,具有相同的目的。旧模式下创建的索引存储外部文件的完整路径。RT模式下创建的索引仅存储文件名称,路径是基于索引名称和配置中的 data_dir 值动态生成的。

在RT模式下,守护进程处理外部文件(词形、例外或停用词文件)的方式也有显著区别。在引入RT模式之前,索引要么将外部文件嵌入索引头部,要么使用它们存储的位置(取决于设置)。现在,当Manticore在RT模式下运行时,嵌入被禁用。例如,当进行以下操作时

CREATE TABLE (title text) wordforms ='/path/to/wordforms.txt'

词形、停用词和例外被复制到 data_dir 内的索引文件夹中。
IMPORT TABLE 的基本功能与此相同。它将外部文件复制到 data_dir 内的索引文件夹中。如果在创建多个索引时使用了相同的外部文件,这可能会导致文件重复。然而,这并不一定意味着守护进程会使用额外的RAM。例如,如果有多个索引使用同一原始词形文件的副本,则searchd仅加载一个词形文件实例。

如果您对新模式有任何疑问,请随时在以下位置提问:

或者从我们的 “ Manticoresearch - RT模式 - 索引管理 ” 互动课程中自行探索。

安装Manticore Search

安装Manticore Search