设置可以从不同数据类型返回建议的Elasticsearch建议器

时间:2016-10-12 11:24:38

标签: elasticsearch elasticsearch-2.0 amazon-elasticsearch

我们正在设置Amazon Elasticsearch Service(运行Elasticsearch版本2.3)。

我们有不同类型的数据(我现在认为是同一索引中的不同文档类型)。

我们在应用中进行了通用搜索,我们需要一个内联自动完成功能,即完成建议器从所有不同的数据(文档)类型返回匹配。如何设置?

querying suggesters必须指定索引时,这就是为什么我想将所有数据保存在同一索引中的原因。根据文档,完成建议者会考虑索引中的所有文档。

为第一个文档类型设置完成建议器非常简单,并且工作得很好。但是,据我所知,您可以在查询时指定建议字段。如果没有为我们在设置第二种文档类型的映射时得到的错误消息,这将是一件好事:

  

类型:illegal_argument_exception原因:“[suggest]被定义为映射[name_of_document_type]中的对象,但此名称已用于其他类型的字段”

写这个问题我看到可以在一个建议查询中指定多个建议者。也许这就是我们要解决的问题? (即从Y建议中得到X结果,我们比较得分,得到我们想要呈现给用户的1条建议。)

1 个答案:

答案 0 :(得分:1)

Elasticsearch良好数据设计的核心原则之一(与许多数据存储一样)是优化数据存储以便于阅读。通常,这意味着拥抱重复

考虑到这一点,我建议使用单独的自动填充索引,并使用专为建议者查询设计的映射。

每当您插入或写入其他文档时,请将其映射到自动完成类型,并在同一时间在自动填充索引中添加或更新它(或者,根据需要的最新版本,创建离线过程,例如每天更新自动完成索引。

然后,当您执行建议查询时,您可以使用自动完成索引,而不必担心处理具有不同字段的不同类型的文档。