【问题标题】:Elastic Search, MongoDB: Mongo-Connector Custom Mappings and Settings弹性搜索,MongoDB:Mongo-Connector 自定义映射和设置
【发布时间】:2016-03-15 04:41:34
【问题描述】:

我已经使用 ElasticSearch 和 MongoDB 实现了 mongo-connecter。在将文档添加到 MongoDb 时,它会通过自动映射自动添加到 ES 中。我的问题是,如果我想向索引添加分析器、过滤器和自定义映射怎么办。例如 n-gram、小写过滤器、术语向量。 ElasticSearch 不允许更新映射和设置,我该如何处理?

【问题讨论】:

标签: mongodb indexing elasticsearch mapping settings


【解决方案1】:

我已经找到了我的问题的解决方案。在我的场景中,必须在开始将文档添加到 MongoDb 之前设置 Elasticsearch 的映射和设置。这样,您将能够使用 mongo 连接器进行自定义分析器,例如 ngram 分析器。将文档添加到 MongoDb 后,它将在 ES 中与其映射和设置同步。

为了给你一个更详细的答案,我将提供一个具体的例子。在您将 API 连接到 MongoDb 作为主要数据源但想要为其快速搜索功能添加 ElasticSearch 的场景中,您可以使用 Mongo-Connecter 使 MongoDb 和 ElasticSearch 保持同步。但是,如果我想添加自定义设置和映射怎么办?好吧,我确定您知道您无法编辑/更新已设置的索引。您必须关闭索引、进行更改并重新索引数据以获取这些更新。我对这个问题的解决方案是让 api 有一个设置和映射文件。在这里,我添加了过滤器、ngram 和映射等设置,以匹配将存储在 MongoDb 中的数据格式。启动时,api 调用 ElasticSearch,从我们的映射和设置中创建一个空索引。然后 api 可以在知道 Elasticsearch 中的索引已经创建的情况下将数据发布到 MongoDb。这里的重点是,在开始将数据输入到 MongoDb 之前,您需要在 Elasticsearch 中启动并设置索引。

我确实听说过另一种解决方案,您可以使用 Elasticsearch 中的模板根据唯一条件继承数据设置。你可以在这里阅读更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html

希望这会有所帮助!

【讨论】:

  • 能否请您改进一下答案,添加更多信息和建议。我想给你一个赏金,但答案不是很清楚
猜你喜欢
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
相关资源
最近更新 更多