当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch自定义评分函数测试空日期值

孔阎宝
2023-03-14

我无法在任何地方找到如何在ES自定义评分函数中测试空值的示例。根据文档,脚本是时髦的,根据日志,脚本是无痛的评估,但即使这样,我仍然对一些错误感到困惑

"script":"doc['response_rate'].value ? (doc['response_rate'].value + 1) : 0",
"lang":"painless",
"caused_by":{
  "type":"wrong_method_type_exception",
  "reason":"cannot convert MethodHandle(Doubles)double to (Object)boolean"}}}]

这似乎表明我正在尝试将双精度值cas到布尔值并提出,但我需要测试非空值。

我的评分脚本应该怎么写?

编辑:我知道在无痛中我不能使用三进制的<代码>?:运算符,所以我必须显式地编写< code>doc['xx']。值!= null。然而,对于用空值索引的日期,这似乎会产生奇怪的结果。似乎在无痛中,该值不是null(尽管当我< code>GET /_search它时,它在json中确实是< code>null ),并且下面的代码不起作用

"script":"(doc['unavailable_until'].value != null) ? 1 : 0"

并且似乎总是返回0(好像空日期实际上不是空的)。我见过一些人报告一些奇怪的默认日期,在这种情况下,我如何将这个日期与Date.now之类的东西进行比较?

共有1个答案

盖锦程
2023-03-14

我想知道为什么我以前找不到这一页...

基本上,可以调用<code>。空以检查空值。也适用于日期

"script":"doc['unavailable_until'].empty ? 1 : 0",
 类似资料:
  • 是否有一种不同的方式来接收价值?

  • 本文向大家介绍iOS自定义日期demo分享,包括了iOS自定义日期demo分享的使用技巧和注意事项,需要的朋友参考一下 有个项目需求是做个在日期上选择的,就是这种: 网上看了几个日期的demo都太厚重了,移植起来太麻烦,然后打算自己写。 就先写个简化的demo看看,主要有几个关键点: 首先要根据当前日期获取这个月有几天 然后判断这个月份第一天是周几 再根据上面两个数据在合理的位置显示数据 还要记录

  • 问题内容: 我正在尝试使用日期格式索引数据。如Elasticsearch 日期格式文档中所述,我需要使用自定义日期格式。我指的是DateTimeFormat文档,并且各自的格式是。 我能够创建映射,但是当我尝试索引数据时会给我错误。 对应: 索引文件: 错误:- 有什么建议吗? 问题答案: 本月使用三个“ M”。引用API文档: 月:3岁或以上,请使用文字,否则请使用数字。 因此,您提供的输入的正

  • 我使用elasticsearch在我的类型中搜索多个数组字段,看起来像 然后我使用multi\u match查询来获取匹配项 当计算t1的分数时,elasticsearch将字段1、字段2和字段3中的查询分数相加,这正是我想要的。然而,他们的贡献并不相等,字段3对得分的贡献最大,因为“foo”在那里多次出现。 我现在想通过不将所有数组条目的分数相加,而是取最大值来计算每个数组字段中的分数。在我的示

  • 本文向大家介绍使用自定义函数在MySQL中验证日期,包括了使用自定义函数在MySQL中验证日期的使用技巧和注意事项,需要的朋友参考一下 让我们创建一个自定义函数来验证MySQL中的日期- 情况1- 当参数为空值时,即要检查的日期不是实际日期。使用SELECT语句调用函数- 这将产生以下输出,即不是日期- 情况2- 当parameter为实际日期值时。使用SELECT语句调用函数- 这将产生以下输出

  • 问题内容: 我有以下控制器: 然后在茉莉花中进行以下测试: “应创建未分配用户的列表”测试失败,并显示以下错误: TypeError:’undefined’不是一个函数(评估$ browser。$$ checkUrlChange()) 我真的不知道为什么。任何帮助表示赞赏。 问题答案: 当您在angular.js和angular-mocks.js之间不匹配时,似乎会出现此问题。请确保两个文件的版本