我正在使用ElasticSearch,我需要创建一个高级查询。我正在开发的应用程序的一部分允许企业向目标受众(“关注者”、“客户”、“关注者或客户”、“公众”)创建报价。这些类别必须确定报价的对象。问题是我已经规范化了数据,也就是说,分离了。一个索引包含客户端的文档,另一个索引包含用户(关注者)之间的关系,最后一个索引包含新的报价。
由于在elasticsearch中不允许使用join sql查询,因此我无法继续构造数据,以便执行上述查询。目标是:
如果目标受众是“public”:出现在距离业务10公里的用户、关注业务概要的用户或已经是业务客户的用户面前。
如果目标受众是“追随者”:只出现在关注业务概要而不是客户的用户面前。
如果目标受众是“客户”:只出现在业务客户的用户面前。
如果目标受众是“follower or clients”:只出现在关注业务概要的用户和已经成为客户的用户面前。
文档模型:
Relationship
{
followerId: String
followedId: String
}
Customer
{
businessId: String
userId: String
etc...
}
Offer
{
id: String
businessId: String
target: "Followers" | "Customers" | "Followers or Customers" | "Public"
location: Coordinates
etc...
}
编辑:值得一提的是,我正在使用amazon技术和dynamodb作为数据库,也许类似问题的一些解决方案可以用这种结构的工具来解决,例如lambda。
暂无答案!
目前还没有任何答案,快来回答吧!