我正在寻找像Vespa中的动态字段(Solr)这样的选项。我需要向现有模式添加新字段,而无需重新部署整个应用程序。
Vespa http://docs.vespa.ai/documentation/search-definitions.html#modify-search-definitions
的文档中提到了与此相关的任何内容提到我们可以添加新字段并运行vespa-deploy prepare
和vespa-deploy activate
。但是,它不是重新提交整个申请吗?什么是至少在开销上实现它的选项?
答案 0 :(得分:2)
http://docs.vespa.ai/documentation/search-definitions.html#modify-search-definitions是正确的文件,是的
更改搜索定义是安全的,因为部署准备步骤将输出所需的步骤(例如,无步骤,重新启动或重新提供)。大多数操作不需要重新启动或重新提供,因为Vespa构建为生产友好,并且添加字段很容易,因为它不需要任何操作。
请注意,不支持字段的默认值。
由于Vespa配置是声明性的,因此提交了完整的应用程序包,但配置服务器将计算更改并将增量部署到节点。这样可以很容易地将应用程序包配置保存在像git这样的代码库中 - 您在repo中看到的就是部署的内容。
答案 1 :(得分:1)
这取决于你所说的“动态”。
如果字段数量为数百个,由应用程序所有者控制并每天更改,那么更改架构和重新部署工作完全正常:字段可以单独更新(即使在索引时),如果不使用它们也不会产生任何开销,并使用新字段部署应用程序很便宜,不需要重新启动或类似的任何操作。
如果您需要成千上万的字段,或者用户添加和删除字段,那么Vespa就没有开箱即用的解决方案。您需要通过向每个标记添加例如“myfield_”前缀来将字段修改为相同的索引。这就是支持这一点的引擎在内部实现这一点的效率。