【问题标题】:Multilingual text search from MongoDB to Elasticsearch从 MongoDB 到 Elasticsearch 的多语言文本搜索
【发布时间】:2013-10-31 19:10:41
【问题描述】:

我在 MongoDB 中有多语言数据,格式如下

"name":{
  "en" :  "dog",
  "fr" : "chien"
},"description" :{ 
} 

我担心文本搜索,即用户应该能够通过文本搜索找到相同的对象,例如 "dog""chien"(或它们的子字符串)。 我正在研究几个全文搜索引擎,例如 elasticsearch、solr 和 sphinxsearch,乍一看,elasticsearch 看起来很有希望。以上是一个糟糕的结构吗?其他引擎是否有明显的优势?在 elasticsearch 中如何实现这样的搜索?

【问题讨论】:

  • 你好像没有什么奇怪的要求,可能是信息不够判断。我建议你玩一下,然后判断自己喜欢什么。

标签: mongodb solr elasticsearch


【解决方案1】:

Solr 和 ElasticSearch 都建立在 Apache Lucene 之上,并且都将提供您想要的功能。 我没有使用过 Elastic Search,因此根据我使用 Solr 的经验给出了一个概述,但我相信同样可以无缝过渡到 Elastic Search。

  1. 您需要将 mongodb 数据导入并索引到 Solr 中。这很容易通过运行 Solr 并使用它的 rest api 来实现。 您还可以使用 10gen mongo-connector : https://github.com/10gen-labs/mongo-connector 将您的 mongodb 记录导入 Solr。 还有许多其他方法可以将您的 mongodb 数据导入 Solr,包括用您选择的语言编写您自己的脚本。

  2. 您需要为导入的数据定义架构定义。对于您的搜索案例,您将主要使用将 Solr 工厂(过滤器/标记器等)应用于文本数据的“文本”。

3.如何定义模式取决于用户流程,您将选择。您的网站是否将是语言中立的,搜索“fem”将显示所有以“fem”开头的语言的所有结果。 或者你要让用户先选择语言。例如“French”,然后仅在“fr”字段中搜索该术语,我认为这将是一个更简洁的解决方案。

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多