实时表 (Real-time table)vs 普通表(Plain Table)
- 实时表格允许添加、更新和删除文档,并立即提供更改。
- 普通表是一种几乎不可变的数据结构,也是实时表使用的基本元素。Plain table 存储一组文档、它们的通用字典和索引设置。一个实时表可以由多个普通表(块)组成,但除此之外,Manticore 还提供了使用工具索引器构建普通表的直接访问。当你的数据大部分是不可变的时,这是有道理的,因此你不需要一个实时表。
实时模式与普通模式
Manticore Search 有两种工作模式:
- 实时模式(RT 模式)。这是默认的,允许命令式地管理你的数据模式:
- 允许使用 SQL 命令 // 及其在非 SQL 客户端中的等效命令在线管理数据架构
CREATE
ALTER
DROP TABLE
- 在配置文件中,您只需定义与服务器相关的设置,包括 data_dir
- 允许使用 SQL 命令 // 及其在非 SQL 客户端中的等效命令在线管理数据架构
- Plain 模式允许在配置文件中定义数据模式,即提供声明式模式管理。这在三种情况下是有道理的:
- 当您只处理普通表格时
- 或者,当数据架构非常稳定且不需要复制时(因为它仅在 RT 模式下可用)
- 当您必须使数据架构可移植时(例如,为了更轻松地在新服务器上部署它)
你不能将这两种模式组合在一起,需要通过在配置文件中指定 data_dir 来决定要遵循哪一种(这是默认行为)。如果您不确定,我们的建议是遵循 RT 模式,就好像您需要一个普通表一样,您可以使用单独的普通表配置来构建它并导入到您的主 Manticore 实例。
实时表可以在 RT 和普通模式下使用。在 RT 模式下,实时表是通过命令定义的,而在 plain 模式下,它是在配置文件中定义的。普通(脱机)表仅在普通模式下受支持。在 RT 模式下无法创建普通表,但在普通模式下创建的现有普通表可以转换为实时表,并在 RT 模式下导入。
SQL 与 JSON
Manticore 提供了多种方式和接口来管理数据库模式和数据,但主要有以下两种:
- SQL。这是一种原生的 Manticore 语言,支持 Manticore 的所有功能。最佳做法是使用 SQL 执行以下作:
- 管理您的数据库模式(schemas)并执行其他 DBA 例程,因为这是最简单的方法
- 设计查询,因为 SQL 比 JSON DSL 更接近自然语言,这在设计新内容时非常重要。您可以通过任何 MySQL 客户端或 /sql 使用 Manticore SQL。
- JSON 的 JSON 格式。大多数功能也可以通过 JSON 域特定语言获得。当您将 Manticore 与应用程序集成时,这尤其有用,因为使用 JSON 时,您可以比使用 SQL 更多地以编程方式执行此作。最佳实践是首先探索如何通过 SQL 执行某些作,然后使用 JSON 将其集成到您的应用程序中。