java - Java 与 Elasticsearch。把逻辑放在哪里?
问题描述
常见的例子,我在 elasticsearch 中有很多项目。每个项目都有:
id
name
price
storeConnectionId
regionConnectionId
可能有不同 id 但名称相同的项目,我想在搜索中添加一些聚合逻辑。
- 如果您所在地区存在该项目,我想准确返回该项目的 ID 和该地区的价格。
- 如果您所在地区没有此类商品,我只想退回最便宜的商品
我在这里看到几个解决方案:
- 将整个逻辑放到 elasticsearch 中。创建很棒的聚合和布尔查询。并且只保留一个对 elasticsearch 的请求。
- 使用两个查询。第一个将返回请求区域的项目,第二个将返回所有具有最低价格聚合的项目。
- 无论如何都从搜索中返回每个项目,并将此业务逻辑保留在 Java 中。
Elasticsearch 只应该在处理大量项目时更快地工作,但是对于弹性搜索查询来说,这样的逻辑可以吗?
解决方案
推荐阅读
- google-api - 如何以编程方式登录使用 Google 登录的网络应用程序?
- angular - 如何在 Ionic 3 上加载和保存视图状态实例以在页面之间重用视图而不再次实例化它?
- javascript - 无法读取未定义的属性“数量”
- c - 一个指针指向一个 NULL 指针
- c# - 为什么设置断点时构造函数会运行三遍?
- apostrophe-cms - 自定义评论表单模块
- android - Recyclerview没有重新加载预期的片段
- java - Java:如何使用接口将数据从一个类传递到另一个类?
- regex - 在每个组的开头不匹配 0 的正则表达式
- android - 如何使用 DialogFragment 显示 AsyncTask 的进度 - 不使用 ProgressDialog