Vespa是否支持动态字段?

时间:2018-02-25 11:38:11

标签: vespa

我正在寻找像Vespa中的动态字段(Solr)这样的选项。我需要向现有模式添加新字段,而无需重新部署整个应用程序。

Vespa http://docs.vespa.ai/documentation/search-definitions.html#modify-search-definitions

的文档中提到了与此相关的任何内容

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

这取决于你所说的“动态”。

如果字段数量为数百个,由应用程序所有者控制并每天更改,那么更改架构和重新部署工作完全正常:字段可以单独更新(即使在索引时),如果不使用它们也不会产生任何开销,并使用新字段部署应用程序很便宜,不需要重新启动或类似的任何操作。

如果您需要成千上万的字段,或者用户添加和删除字段,那么Vespa就没有开箱即用的解决方案。您需要通过向每个标记添加例如“myfield_”前缀来将字段修改为相同的索引。这就是支持这一点的引擎在内部实现这一点的效率。