Elasticsearch:嵌套查询中的脚本字段

2023-12-22

有没有办法在嵌套查询中使用“script_fields”,将字段添加到返回的inner_hits?例子:

{
   "nested": {
      "inner_hits": {},
      "path": "companies",
      "score_mode": "sum",
      "query": {},
      "script_fields": {
         "overlap" : {
            "script": {
               "source": "................................",
               "params": {
                   "from": "2012-01-01",
                    "to": "2015-06-30"
                }
            }
         }                
      }         
}

我执行 n 个嵌套查询,并向每个查询传递一组特定参数。这个想法是让源脚本根据提供的参数为每个内部命中的重叠字段分配一个值。

在 Val 建议将 script_fields 添加到内部命中后进行更新

看起来像在定义不同inner_hits的同一嵌套路径上执行更多嵌套查询使得ES剥离inner_hits匹配。例子:

{
       "nested": {
          "inner_hits": {
            "script_fields": {
               "overlap" : {
                  "script": {
                     "source": "................................",
                        "params": {
                           "from": "2012-01-01",
                           "to": "2015-06-30"
                         }
                      }
                   }                
                 } 
          },
          "path": "companies",
          "score_mode": "sum",
          "query": {},

    },
    {
       "nested": {
          "inner_hits": {
            "script_fields": {
               "overlap" : {
                  "script": {
                     "source": "................................",
                        "params": {
                           "from": "2012-01-01",
                           "to": "2015-06-30"
                         }
                      }
                   }                
                 } 
          },
          "path": "companies",
          "score_mode": "sum",
          "query": {},

    } 

如果运行像这样的更多嵌套查询,我会得到正确的匹配项,但不会返回所有预期的inner_hits。我可以获得所有点击,只需为不同的 inner_hits 提供随机名称,例如:

"inner_hits": {
   "name": [random name]
   "script_fields": {
      "overlap" : {
         ......
      }
    }
 }   

然后我得到了正确的点击结果,但有一些缺点。我必须检查重复的结果,因为命中被添加到不同的结果集中并且不再是唯一的。我必须使用正则表达式来解析结果以重建统一列表。

这听起来像是一个错误吗?


是的,这是可行的。你只需要移动script_fields里面的部分inner_hits, 像这样:

{
   "nested": {
      "path": "companies",
      "score_mode": "sum",
      "query": {}.
      "inner_hits": {
         "script_fields": {
           "overlap" : {
             "script": {
               "source": "................................",
               "params": {
                   "from": "2012-01-01",
                    "to": "2015-06-30"
               }
             }
           }                
         }     
      }
   }              
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch:嵌套查询中的脚本字段 的相关文章

随机推荐

  • mongodb查询结果不带字段名

    有没有办法获取仅包含值而不包含字段名称的 mongodb 查询结果 我的查询给出了以下结果 t number 2508 t number 2560 t number 2599 理想情况下我希望查询结果是 2508 2560 2599 或者如
  • 列出 AWS SSM Parameter Store 中的所有参数

    如何列出 AWS Systems Manager SSM 参数存储中的所有参数 我正在使用 AWS CLI 我可以将它们存储为aws ssm put parameter 我可以用以下方式获取它们aws ssm get parameter 我
  • 如何使用C从文件中读取二维数组?

    I tried void read grid from file int grid const size t row const size t column FILE inf size t x y for x 0 x lt row x fo
  • 尝试使用 Terraform 创建 AWS VPC 安全组时出现循环错误

    我想创建 2 个 VPC 安全组 一台用于 VPC 的堡垒主机 一台用于私有子网 BASTION resource aws security group VPC BastionSG name VPC BastionSG descriptio
  • psql \copy 中的变量替换

    是否可以在 PSQL 控制台导出文件中将当前日期放在文件名末尾 导出的文件名应该是这样的表 20140710 csv可以动态地做到这一点吗 日期的格式可以与上面的不同 但这并不重要 这就是我的意思的例子 set curdate curren
  • Django Serializer 使用外键关系保存模型

    我正在尝试保存一个具有引用另一个表的外键的模型对象 尝试编写相同的序列化器 但是无法理解如何做到这一点 并且似乎也找不到正确的文档 我的模型对象 class Restaurant models Model name models CharF
  • 拒绝访问 .tmp 路径

    我正在尝试使用 DotNetZip 库压缩文件 我正在从文件中读取路径并将 zip 保存到该文件 但程序崩溃并抛出 这是我的代码 using ZipFile zip new ZipFile zip AddDirectory dir OUTP
  • 访问绑定源列值

    如何使用代码更新绑定源中的列值 我正在尝试类似的事情 CustomersBindingSource AddNew CustomersBindingSource Current CustomerID Guid NewGuid 此代码当前错误指
  • 在 Angular 2 中使用 SOAP 服务

    我想知道是否有人可以建议或向我指出网络上有关我的 Angular 2 应用程序如何使用 SOAP 服务的任何资源 不幸的是 这是一个遗留应用程序 因此目前没有 REST 替代方案 蒂亚 您可以查看这个 SOAP 客户端服务 https gi
  • 如何让内容占据100%的高度和宽度

    我已经很接近了 但我无法让它像我想要的那样工作 我试图让标题和菜单始终可见 并使内容占据视图屏幕的其余部分 并在溢出时拥有自己的滚动条 问题是内容的宽度没有被拉伸到右侧 并且我在页面中间出现了一个滚动条 我也无法让它占据剩余窗口高度的其余部
  • 智能指针作为多态性的类成员

    我是智能指针的新手 如果有人能给我提示我作为类成员处理智能指针的方式是否正确 我将非常感激 更准确地说 我想要实现的解决方案是在类多态性的背景下实现的 并且理想情况下应该是异常安全的 Given a 异构对象的容器 http www par
  • 来自 BLL 中的一种方法的跨多个 DAL 方法的事务

    您将如何从业务逻辑层中的一个方法调用数据访问层中的多个方法 以便所有 SQL 命令都存在于一个 SQL 事务中 每个 DAL 方法都可以从 BLL 中的其他位置单独调用 因此不能保证数据层方法始终是事务的一部分 我们需要此功能 因此如果数据
  • @StringRes、@DrawableRes、@LayoutRes等android注解lint检查与kotlin参数

    假设您有这样的带有默认参数的数据类 data class Info DrawableRes val iconRes Int 0 StringRes val stringRes Int 0 LayoutRes val layoutRes In
  • 无法解析符号“RequestQueue”

    我是 android studio 和 volley 库的新手 所以请耐心等待 我通过 GitHub 添加了 volley 库 然后添加了这一行来构建 gradle 文件 compile com android support appcom
  • 查找对象数组中最后一个匹配的对象

    我有一系列对象 我需要获取最后一个对象的对象类型 本例中为 形状 将其删除 然后找到数组中具有相同类型的前一个对象的索引 例如 形状 var fruits shape round name orange shape round name a
  • JSP中页面

    我收到了一项向 HTML 页面 JSP 添加功能的任务 该页面仅来自设计师 前端开发人员 因此在某些地方我需要更改a href to button or input但这会造成混乱 所有设计都改变了 这是一段代码 div class col
  • 如何绘制三列数据的热图

    我有三列文件 500 万行 它像是 x y z 3 4 6 7 9 4 7 8 X 和 y 是像素编号 z 是 x y 处的对应值如何绘制热图 二维图是我最初想法的妥协 你可以查看我的原帖如何使用 scipy interpolate 中的
  • 去打印大量

    我目前正在做 Go Lang 教程 准确地说是 数字常量 示例代码以以下语句开头 const Create a huge number by shifting a 1 bit left 100 places In other words t
  • 使用here()函数向上一级目录

    我想让这里的函数在开始下降目录级别之前上升一个级别 例如 我的项目位于目录 parent project root 中 因此here 将此视为默认目录 我想在 parent other dir 中读取一些数据 我需要传递什么参数到here
  • Elasticsearch:嵌套查询中的脚本字段

    有没有办法在嵌套查询中使用 script fields 将字段添加到返回的inner hits 例子 nested inner hits path companies score mode sum query script fields o