如何存储本地化的搜索结果

时间:2015-07-07 20:30:57

标签: python json search solr localization

我的搜索结果类似如下:

search.get_res()
{
  "Title": "The Lion King",
  "Synopsis": "When the evil Scar kills Mufasa..."
  "RunTime": 92
}

但是,如果用户使用其他语言,我还需要本地化 TitleSynopsis。换句话说,我需要能够指定类似的内容:

search.get_res(language="en")
search.get_res(language="fr")
search.get_res(language="de")

存储此内容的最佳方式是什么?这一切都应该在一个json对象中吗?也许是这样的事情:

{
    "DEFAULT": {
        "Title": "The Lion King",
        "Synopsis": "When the evil Scar kills Mufasa..."
        "RunTime": 92
    }, "FR": {
        "Title": "Le Grande Lion",
        "Synopsis": "Quande elle..."
    }
}

或者,什么是存储solr搜索结果的最佳方式,其中一些(不是全部,仅一些)信息已本地化并且可以以多达50种语言进行本地化。如果所有内容存储在同一个json对象中,50个概要可能会变得非常大......

1 个答案:

答案 0 :(得分:1)

我假设您希望以多种语言搜索并显示结果。如果是这样,那么有两种策略

  1. 多核配置。每种语言都有自己的核心,在应用程序端,您可以根据用户选择的语言指定要搜索的核心。
  2. 单核配置,每种语言都有重复的字段 - 或多或少是您正在考虑的相同解决方案。
  3. 我找到了两个网站,详细介绍了上述配置。 http://www.basistech.com/indexing-strategies-for-multilingual-search-with-solr-and-rosette/ http://pavelbogomolenko.github.io/multi-language-handling-in-solr.html

    如果您只想选择以不同语言显示结果但是将搜索限制为英语,则解决方案可能更简单。 示例文档

    {
        "Doc1": {
            "EN_Title": "The Lion King",
            "EN_Synopsis": "When the evil Scar kills Mufasa..."
            "FR_Title": "Le Grande Lion",
            "FR_Synopsis": "Quande elle..."
        }
    }
    

    在Solr搜索中,您将返回字段指定为

    &fl=FR_*(法语)或

    &fl=EN_*(英文)