Elasticsearch 根据 2 个条件返回文档,其中一个条件基于另一个条件

海奇

我有以下格式的文件:

{
   "id": number
   "chefId: number
   "name": String,
   "ingredients": List<String>,
   "isSpecial": boolean
}

以下是 5 个文件的列表:

{
   "id": 1,
   "chefId": 1,
   "name": "Roasted Potatoes",
   "ingredients": ["Potato", "Onion", "Oil", "Salt"],
   "isSpecial": false
},
{
   "id": 2,
   "chefId": 1,
   "name": "Dauphinoise potatoes",
   "ingredients": ["Potato", "Garlic", "Cream", "Salt"],
   "isSpecial": true
},
{
   "id": 3,
   "chefId": 2,
   "name": "Boiled Potatoes",
   "ingredients": ["Potato", "Salt"],
   "isSpecial": true
},
{
   "id": 4,
   "chefId": 3
   "name": "Mashed Potatoes",
   "ingredients": ["Potato", "Butter", "Milk"],
   "isSpecial": false
},
{
   "id": 5,
   "chefId": 4
   "name": "Hash Browns",
   "ingredients": ["Potato", "Onion", "Egg"],
   "isSpecial": false
}

我将进行搜索,其中名称字段中包含“Potatoes”。像这样:

{
  "query": {
    "wildcard": {
      "status": {
        "value": "*Potatoes*"
      }
    }
  }
}

但我还想在返回文档时添加一些额外的标准:

  • 如果配料中含有洋葱或牛奶,则返回文件。因此将返回 id 为 1 和 4 的文档。请注意,这意味着我们返回了主厨 ID 为 1 和 3 的文档。
  • 然后,对于我们还没有获得具有相同厨师 ID 的另一个文档的文档,返回 isSpecial 标志设置为 true 的位置。所以只会返回文档 3。2 不会被返回,因为我们已经有一个主厨 ID 等于 1 的文档。

是否可以在 Elasticsearch 中进行这种链接?我希望能够在单个查询中做到这一点,这样我就可以避免向我的(Java)代码添加逻辑。

皮埃尔·马莱

您不能在一个 elasticsearch 查询中使用这种逻辑。您可以使用聚合/ post_filter 进行棘手的查询,以便在一个查询中包含您需要的所有数据,然后在您的 Java 应用程序中转换它。但是最好的方法(也是更易于维护的)是有两个查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一个表的2个条件计算mysql表行数

来自分类Dev

根据另一个嵌入文档的搜索条件获取嵌入文档

来自分类Dev

根据另一个表创建条件列

来自分类Dev

熊猫-如何根据条件求和2列中的X个最后一个值

来自分类Dev

根据另一个阵列中的条件平均一个阵列

来自分类Dev

根据条件从一个IEnumerable向另一个IEnumerable添加行

来自分类Dev

根据另一个表中的条件更新一个表中的列

来自分类Dev

如何根据另一个查找条件查询最后一个条目

来自分类Dev

pandas:根据另一个列表列中的条件从列表列返回值

来自分类Dev

根据另一个查询返回的条件在postgres中触发不同的查询

来自分类Dev

如何根据条件将多个SVG保存在一个文件中并使用其中一个?

来自分类Dev

如何根据一个条件从数组(2 列)中创建值列表?

来自分类Dev

显示根据条件而变化的选项列表,并让用户选择其中一个选项

来自分类Dev

根据C中的另一个条件更改循环条件语句

来自分类Dev

如何根据另一个条件中的条件显示视图反应原生?

来自分类Dev

根据另一个列条件用数据框中的另一个列表替换列表

来自分类Dev

根据条件在内部将文档根目录重定向到另一个文件夹

来自分类Dev

两个返回 observable 的函数;需要根据另一个的结果有条件地调用一个

来自分类Dev

如何根据条件基于另一个数据框提取熊猫数据框的行

来自分类Dev

根据基于该字典中另一个键的值的条件,更新python词典列表中的值

来自分类Dev

根据多个条件返回一个值

来自分类Dev

根据列中的条件将行从一个Google工作表提取到另一个

来自分类Dev

有条件地根据另一个变量设置一个变量的值

来自分类Dev

根据条件将值从一个熊猫数据框替换为另一个

来自分类Dev

根据条件和相同的主键将金额从一个表带到另一个表

来自分类Dev

awk代码可根据另一个文件中的匹配条件过滤一个文件中的行

来自分类Dev

根据某些条件从一个与另一个表相关的表中检索记录

来自分类Dev

根据条件将对象从一个数组添加到另一个数组

来自分类Dev

SQL根据某种条件从另一个表中插入/更新到一个表中

Related 相关文章

  1. 1

    根据另一个表的2个条件计算mysql表行数

  2. 2

    根据另一个嵌入文档的搜索条件获取嵌入文档

  3. 3

    根据另一个表创建条件列

  4. 4

    熊猫-如何根据条件求和2列中的X个最后一个值

  5. 5

    根据另一个阵列中的条件平均一个阵列

  6. 6

    根据条件从一个IEnumerable向另一个IEnumerable添加行

  7. 7

    根据另一个表中的条件更新一个表中的列

  8. 8

    如何根据另一个查找条件查询最后一个条目

  9. 9

    pandas:根据另一个列表列中的条件从列表列返回值

  10. 10

    根据另一个查询返回的条件在postgres中触发不同的查询

  11. 11

    如何根据条件将多个SVG保存在一个文件中并使用其中一个?

  12. 12

    如何根据一个条件从数组(2 列)中创建值列表?

  13. 13

    显示根据条件而变化的选项列表,并让用户选择其中一个选项

  14. 14

    根据C中的另一个条件更改循环条件语句

  15. 15

    如何根据另一个条件中的条件显示视图反应原生?

  16. 16

    根据另一个列条件用数据框中的另一个列表替换列表

  17. 17

    根据条件在内部将文档根目录重定向到另一个文件夹

  18. 18

    两个返回 observable 的函数;需要根据另一个的结果有条件地调用一个

  19. 19

    如何根据条件基于另一个数据框提取熊猫数据框的行

  20. 20

    根据基于该字典中另一个键的值的条件,更新python词典列表中的值

  21. 21

    根据多个条件返回一个值

  22. 22

    根据列中的条件将行从一个Google工作表提取到另一个

  23. 23

    有条件地根据另一个变量设置一个变量的值

  24. 24

    根据条件将值从一个熊猫数据框替换为另一个

  25. 25

    根据条件和相同的主键将金额从一个表带到另一个表

  26. 26

    awk代码可根据另一个文件中的匹配条件过滤一个文件中的行

  27. 27

    根据某些条件从一个与另一个表相关的表中检索记录

  28. 28

    根据条件将对象从一个数组添加到另一个数组

  29. 29

    SQL根据某种条件从另一个表中插入/更新到一个表中

热门标签

归档