elasticsearch,Mongodb,elasticsearch" /> elasticsearch,Mongodb,elasticsearch" />

Elasticsearch River(mongodb),建模模式 介绍

Elasticsearch River(mongodb),建模模式 介绍,mongodb,elasticsearch,Mongodb,elasticsearch,我目前正在为一家公司做一个项目,到目前为止还不错。我们正在生产。我们的QA最近发现了ElasticSearch的一些奇怪行为。我们正在使用ElasticSearch和MongoDB。ElasticSearch通过River,特别是 背景 我们通过我们的服务聚合、过滤和排序了200多万个职位。为了快速有效地搜索这些数据,我们使用弹性搜索,MongoDB是我们的主要数据存储。主要搜索功能之一是按地区、州和城市进行搜索。我们使用州缩写词来实现这一点,例如威斯康星州麦迪逊市。使用此功能,我们可以搜索整个

我目前正在为一家公司做一个项目,到目前为止还不错。我们正在生产。我们的QA最近发现了ElasticSearch的一些奇怪行为。我们正在使用ElasticSearch和MongoDB。ElasticSearch通过River,特别是

背景 我们通过我们的服务聚合、过滤和排序了200多万个职位。为了快速有效地搜索这些数据,我们使用弹性搜索,MongoDB是我们的主要数据存储。主要搜索功能之一是按地区、州和城市进行搜索。我们使用州缩写词来实现这一点,例如威斯康星州麦迪逊市。使用此功能,我们可以搜索整个地区(例如中西部地区),并得出中西部地区所有地区的结果,我们可以对各州进行同样的操作,并得出该州城市的所有结果

问题 我们遇到了一个奇怪的问题,在俄勒冈州的搜索结果没有点击,或者点击不包括俄勒冈州内的城市,而只是全州范围内的工作(不特定于任何城市)

原因 最突出的原因似乎是ApacheLucene将单词
保留为
操作,这也是俄勒冈州的缩写。我认为这就是问题所在,因为这种奇怪的行为只在俄勒冈州的搜索中出现

解决方案是什么? 我的目的是将“states”字段更改为
未分析
,以防止这种情况发生,并更改我的搜索查询

为什么我不能让它工作 MongoDB River相对来说是一个交钥匙,我可以将它指向一个数据库,甚至可以将其细化为一个集合。它将形成自己到我的集合的映射,问题是没有文档或提到我将如何为存储在MongoDB中并使用River索引到ES的数据定义自己的映射

结论
有人知道在预定义映射中更改字段的方法吗?否则,有人知道我如何定义自己的MongoDB河地图吗?文档或示例会很好。这是一个令人困惑的问题,因此如果您需要更多详细信息,请随时询问。

我认为您需要先创建索引并定义映射,然后创建河流。您可能会发现前面的讨论很有帮助:

除此之外: