如何在elasticsearch

时间:2016-03-24 19:44:40

标签: elasticsearch

我正在尝试构建一个简单的自动完成,其中数据来自Elasticsearch,我似乎遇到了问题。

我在Elasticsearch中保留了活动参与者的注册信息。

registration:{
   name: "John Doe",
   title: "Mr",
   country: "AU",
   position: "Employee"
}

由于有数百个事件,“John Doe”在ES中可能有数百个点击

我正在建立一个自动完成,我想只显示John Doe的独特版本。

E.g。

  • “John Doe”,“Australia”,“Mr”,“Employee”
  • “John Doe,”USA“,”Mr“,”Employee“
  • “John Doe”,“USA”,“Dr.”,“Owner”
索引中的

我可能有第1行的50,第2行的20和第3行的100。

据我所知,我不能使用存储桶,因为它们聚合在一行上,我需要整个文档。

有没有简单的方法来实现这一目标?

按名称,标题,国家/地区,位置从表格组中选择姓名,职位,国家/地区,职位

1 个答案:

答案 0 :(得分:0)

如果您希望使用存储桶..您可以使用文本的连接版本作为要聚合的术语。 你可以根据需要使用脚本,

e.g。

"terms":{
     "script":"doc['name'].value 
             + '|' + doc['title'].value 
             + '|' + doc['country'].value 
             + '|' + doc['position'].value"
}

对于每个创建的存储桶,您将获得一个键,其中包含脚本中包含的字段值。

但是,您可以查看elasticsearch中的Completion Suggester,您无需明确处理重复项。