目前翻译平台的记忆库后端基于Pontoo,当初这么选主要是为了方便,因为Pontoon提供记忆库的完整解决方案。
现在情况有了变化。
大上个周我们将应用市场的插件、主题信息显示与翻译平台的翻译结果进行了关联,这带来了一个问题——我们无法基于翻译后的字符进行搜索。
因为翻译是在内容从数据库取出来并在前端显示这一流程的中间实时进行的,也就是说我们并没有更改数据库原文,也没有对翻译结果持久化,于是我们也就无法基于翻译后的内容对产品进行检索了,用户只能去搜索英文原文才能检索到他想要的产品。
这个问题最佳的解决方案就是引入ES(ElasticSearch),这是一个专业的搜索引擎。我们可以将在插件、主题介绍被实时翻译后通过一个异步队列将译文同步到ES中进行索引,这样当用户发起搜索请求时就把请求转发给ES,并返回由ES输出的搜索结果。
引入ES后,进一步的增加了我们服务器环境的复杂度,为了防止服务过度耦合,翻译记忆库的实现也会同步迁移到ES中,这样在去掉Pontoon的同时还可以去掉其所依赖的PosterSQL、Django。
目前机器翻译填充的实现也要依赖记忆库,所以记忆库迁移到ES的工作会立即启动并优先进行。