如何在Elasticsearch上进行联合查询?

2023-12-01

我想用 UNION 和 limit 进行查询。

我可以解释一下 mysql 上的查询。

(SELECT 
    *
FROM table
WHERE type='text'
LIMIT 3
)
UNION
(SELECT 
    *
FROM table
WHERE type='word'
LIMIT 3
)

我在 Elasticsearch 上尝试过

{

    "query":{
        "dis_max":{
            "queries":[
                {
                    "from":0,
                    "size":3,
                    "query":{
                        "match":{
                            "type":"text"
                        }
                    }
                },
                {
                    "from":0,
                    "size":3,
                    "query":{
                        "match":{
                            "type":"word"
                        }
                    }
                }
            ]
        }
    }

}

{%22query%22:{%22dis_max%22:{%22queries%22:[{%22query%22:{%22match%22:{%22type%22:%22test%22}}}]}}} 然后,错误发生了。

{
  "error" : {
    "root_cause" : [ {
      "type" : "query_parsing_exception",
      "reason" : "[_na] query malformed, no field after start_object",
      "index" : "test",
      "line" : 1,
      "col" : 34
    } ],
    "type" : "search_phase_execution_exception",
    "reason" : "all shards failed",
    "phase" : "query",
    "grouped" : true,
    "failed_shards" : [ {
      "shard" : 0,
      "index" : "test",
      "node" : "U6yIqY-pS526Vz8QTi6d0Q",
      "reason" : {
        "type" : "query_parsing_exception",
        "reason" : "[_na] query malformed, no field after start_object",
        "index" : "test",
        "line" : 1,
        "col" : 34
      }
    } ]
  },
  "status" : 400
}

当我仅使用匹配查询时,它起作用了。但对于尺寸来说,它不起作用。

我该如何解决?


要走的路是多重搜索

curl -XGET 'http://127.0.0.1:9200/indexname/_msearch'  -d '
{}
{"query" : {"term" : {"type" : "text"}}, "size" : 3}
{}
{"query" : {"term" : {"type" : "word"}}, "size" : 3}
'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Elasticsearch上进行联合查询? 的相关文章

随机推荐

  • 迭代向量时 typeid.name() 不会改变。动态转换和 typeid 基类指针

    答 总之用虚函数 因此 实际上不要将其用作良好的设计 但出于学习目的 请阅读 首先我想说我正在使用 c 和 Qt 我有一个形状指针向量 基类 编辑 doSomething 不是基类的成员 而是派生类的成员 这就是为什么我使用dynamic
  • 多部分/表单数据的问题

    当我的表单包含多部分 表单数据时 我无法从 servlet 中的文件和文本输入获取值 我正在使用 apache commons fileuploads 来帮助上传 有什么建议 另外 在下面的代码中 有一些我认为应该更有效的事情 有没有更好的
  • 在mysql中使用select into局部变量和准备好的语句

    每次调用此存储过程时我都会收到此错误 1064 You have an error in your SQL syntax check the manual that corresponds to your MySQL server vers
  • Jquery:元素数组的事件监听器

    我使用以下方法用元素填充数组 each 方法和 this 选择器 function var elements new Array var index 0 img each function if this attr attribute th
  • 如何检测文本中只有空格的行?

    鉴于 空行 是一个空格 我正在尝试逐行读取文本文件 我想忽略空白行 或者以更正确的方式 我想检测空行 空行可以包含空格 换行符等 并且它仍然被视为空行 如果您在记事本中打开它 在空行中您不应该看到任何内容 有没有一种快速的方法可以在Pyth
  • Python 从标准输入中读取参数

    我想从 python stdin 读取数据 但也想在我的程序中拥有输入选项 当我尝试将选项传递给我的程序时 我收到错误文件未找到并且我的参数被丢弃 为了解析参数 我使用以下代码 parser argparse ArgumentParser
  • 在 C++ 中更改带有前导零的十六进制数的位,(C)

    我有这个十六进制字符串的数字 002A05 我需要将这个数字的第 7 位设置为 1 所以转换后我会得到 022A05 但它必须适用于每 6 个字符的十六进制数字 我尝试通过 strtol 将十六进制字符串转换为整数 但该函数去掉了前导零 请
  • 找到最适合n个球体交点的点

    我有一系列带有距离的点 我希望找到一个最能满足以下条件的点 for point i distance i in pointArray abs point point i distance i 我认为这可以通过某种回归或最小二乘来解决 但我在
  • 如何从 OpenShift DATA_DIR 提供上传的图像

    我的应用程序在 JBoss EAP 上运行 我想将图像上传到 OPENSHIFT DATA DIR 然后将它们的相对路径保存在 MySQL DB 中 因为我需要构建图像的路径 然后在需要时将它们提供给浏览器 If my OPENSHIFT
  • 使用 JavaScript 动态计算总和

    我有两个文本框Num1 and Num2和另一个文本框Sum具有价值10 如果用户输入一个数字 我该如何做到这一点Num1 它将添加到Sum并动态改变显示的数字Sum文本框 如果用户输入一个数字Num2它还会将该数字添加到显示的更新数字中S
  • 如何将数据从过滤器传递到 Jersey 中的端点

    您可以在不使用 ThreadLocal 或 HttpSession 的情况下将一些数据从 javax servlet Filter 传递到 Jersey 端点吗 因为第一个问题是 你为什么要这样做 主要是好奇 在实践中 我认为我可以使用它来
  • 定义带或不带导出的变量

    What is export for 有什么区别 export name value and name value export使变量可用于子流程 That is export name value 表示变量名可用于任何过程你从那个 she
  • Java 编译器错误消息“预期”是什么意思?

    class if public static void main String args int x 9 if x lt 9 System out println Yay else System out println Yay 我从编译器运
  • 椭圆曲线乘法函数

    我正在尝试为椭圆曲线创建自己的库 有些事情有效 但有些则无效 要从私钥计算公钥 您应该将生成点与私钥相乘 然后得到另一个点 公钥点 ECPoint BigInteger ECPoint 现在 我有一个私钥 并将其与 Secp256k1 曲线
  • 如何使用 Go 和 gorilla websocket 仅发送给一个客户端而不是所有客户端

    我正在尝试用 Go 学习 websocket 我一直在研究 gorilla websocket 的示例 我已经查看了这两个示例 展示了如何使用 gorilla websocket https github com gorilla webso
  • 使用dash上传组件上传csv文件并生成图表

    我想上传 csv 文件并生成一个从 csv 文件输出数据的图表 我可以上传 csv 并使用 dash table 显示数据 但我无法使图表正常工作 上传 csv 文件后出现错误 参数无效figure data传递到 ID 为 Mygraph
  • MySQL Java 更新语法

    我只是想在我的应用程序中使用更新 但我不能 在控制台中 这个 mysql 命令可以工作 但在这里不行 好吧 我在我的程序中使用了这个 conexao poolMySQL connect final String sql UPDATE pro
  • 寻找一个好的Python树数据结构[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个好的树数据结构类 我遇到过这个包 但由于我对Python相对较新 不是编程 我不知道是否有更好的 我想听听这里的 Python 达人的
  • 类型错误:不支持 src 数据类型 = 15

    我想使用快速傅立叶变换 但已经尝试简单的来回变换不起作用 代码是 import cv2 import numpy as np img cv2 imread Picture bmp 0 f np fft fft2 img fshift np
  • 如何在Elasticsearch上进行联合查询?

    我想用 UNION 和 limit 进行查询 我可以解释一下 mysql 上的查询 SELECT FROM table WHERE type text LIMIT 3 UNION SELECT FROM table WHERE type w