2

我正在寻找任何选项,例如 Vespa 中的动态字段 (Solr)。我需要在现有架构中添加新字段,而无需重新部署整个应用程序。

Vespa http://docs.vespa.ai/documentation/search-definitions.html#modify-search-definitions的文档中提到了与此相关的任何内容

提到我们可以添加一个新字段并运行vespa-deploy prepareand vespa-deploy activate。但这不是重新提交整个申请吗?什么是至少在开销上实现它的选项?

4

2 回答 2

2

http://docs.vespa.ai/documentation/search-definitions.html#modify-search-definitions是正确的文档,是的

更改搜索定义是安全的,因为部署准备步骤将输出所需的步骤(例如,无步骤、重新启动或重新输入)。大多数操作不需要重新启动或重新输入,因为 Vespa 是为生产友好而构建的,并且添加字段很容易,因为它不需要任何操作。

请注意,不支持字段的默认值。

由于 Vespa 配置是声明性的,因此会提交完整的应用程序包,但配置服务器将计算更改并将增量部署到节点。这使得将应用程序包配置保存在像 git 这样的代码仓库中变得很容易——您在仓库中看到的就是部署的内容。

于 2018-02-26T08:51:07.257 回答
1

这取决于您所说的“动态”是什么意思。

如果数百个字段数由应用程序所有者控制并每天更改,那么更改架构和重新部署工作得非常好:字段可以单独更新(即使已编入索引),如果不使用它们不会产生开销,并且部署带有新字段的应用程序很便宜,并且不需要任何重新启动或类似的东西。

如果您需要数以万计的字段,或者这些字段是由用户添加和删除的,那么 Vespa 没有开箱即用的解决方案。您需要通过向每个标记添加例如“myfield_”前缀来将字段拆分到同一个索引中。这就是支持此功能的引擎在内部执行的操作以使其高效。

于 2018-02-27T08:17:24.983 回答