我正在构建一个使用多种语言的多语言Wagtail项目,并且想知道如何定义多个ElasticSearch索引(每种语言一个),以便将本地化字段添加到相应的索引中。
我的模型建立有重复的字段,每种语言一个字段(请参见下面的示例)。
我想要实现的示例:
class SearchablePage(Page):
body_fr = models.TextField()
body_en = models.TextField()
search_fr_fields = [
index.SearchField('body_fr', partial_match=True, boost=10),
]
search_en_fields = [
index.SearchField('body_en', partial_match=True, boost=10),
]
仅供参考,我正在遵循以下建议:Multilingual elasticsearch indexing best practice/experiences
但是,对于使用多语言网站的单个索引的任何建议,我都是开放的。
我会为每种语言提供一个前端,并且不会在搜索结果中混合使用多种语言。
更新:
此函数获取模型中的可搜索字段,因此它似乎不可行:https://github.com/wagtail/wagtail/blob/3d4055e465a59114309d23ca1ce069900af9398d/wagtail/search/index.py#L48
无论如何,我让这个问题开放,也许会提供解决方案。