在具有规范化数据的应用中进行多语言自由文本搜索?

时间:2011-04-22 10:25:07

标签: web-applications search full-text-search normalization multilingual

我们的数据库中包含枚举,自由文本和引用字段等。

每个枚举都有自己的翻译,自由文本可以是任何语言。我们希望进行有效的大规模自由文本搜索和基于枚举值的搜索。

我知道像Solr这样的解决方案很好,但这意味着我们必须使用系统中所有语言的所有文本索引整个非规范化记录。这看起来有点过分。

有哪些推荐的搜索多语言规范化数据的方法?有人之前解决过这个问题吗?

1 个答案:

答案 0 :(得分:0)

ETL。提取,转换,加载。换句话说,从现有数据库中获取数据,对其进行转换(这不仅仅是对其进行非规范化)并将其加载到SOLR中。 SOLR数据库将比现有数据库小很多,因为没有关系开销。 SOLR搜索可以消除现有数据库服务器的大部分负担。

详细了解如何配置和使用SOLR以及了解SOLR内核。您可能希望将某些语言放在单独的核心中,因为这样您可以更有效地使用SOLR中的各种词干算法。但即使使用多语言数据,您仍然可以使用bigrams(例如用于中文语言分析)。

拥有多个核心会使搜索变得更复杂,因为您可以尝试使用单一语言索引或全语言索引。但是,将语言数据分组并应用特定语言的停用词,受保护的词,词干和语言分析工具会更有效。

通常,您会在索引中包含一些关键数据,以便在通过SOLR搜索找到记录时,可以直接引用源数据库。此外,您可以将规范化和非规范化数据放在一起,例如,枚举可以用英语记录在标准化字段中,也可以用与自由文本相同的语言记录非规范化字段。可以复制字段以应用两种不同的分析和过滤处理。

使用您的数据子集对此进行试验是值得的,以了解SOLR的工作原理以及如何最好地配置它。