如何在弹性脚本中使用特殊文档字段?

阿拉耶古佐夫

我正在尝试在Elasticsearch中使用自定义脚本编写查询:

当您需要比较两个文档字段时,这很有用。

一切工作正常,直到我决定使用特殊的文档字段(例如:_id,_uid等)。查询始终返回空结果,如果我这样使用它,则不会出现错误:doc['_id'].value

那么,如何在自定义脚本中使用文档的“ _id”字段呢?

安德烈·斯特凡(Andrei Stefan)

_id被索引的uid字段,使用此格式:type#id

因此,您的脚本应如下所示(对于类型为my_type,ID为1):

{
  "query": {
    "filtered": {
      "filter": {
        "script" : {
            "script" : "doc['_uid'].value == 'my_type#1'"
        }
      }
    }
  }
}

采取idES方式的更精细的解决方案是这样的:

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "org.elasticsearch.index.mapper.Uid.splitUidIntoTypeAndId(new org.apache.lucene.util.BytesRef(doc['_uid'].value))[1].utf8ToString() == '1'"
        }
      }
    }
  }
}

这里org.elasticsearch.index.mapper.Uid.splitUidIntoTypeAndId(new org.apache.lucene.util.BytesRef(doc['_uid'].value))[1]idorg.elasticsearch.index.mapper.Uid.splitUidIntoTypeAndId(new org.apache.lucene.util.BytesRef(doc['_uid'].value))[0]type

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在弹性搜索中使用脚本化字段时如何返回所有字段

如何在Elasticsearch中使用脚本比较字段并删除字段?

如何在ElasticSearch中使用脚本更新数组类型的字段?

如何在脚本bash中使用文档转换服务转换多个文档?

如何在WTForms字段中使用特殊字符(其他语言)?

如何在 React.js 中使用特殊字符将文本字段限制为 100

如何在Elasticsearch中使用无痛脚本获取数组字段的匹配字段值?

如何在NSURL中使用特殊字符?

如何在xfig中使用特殊字符

如何在Chef中使用特殊字符?

如何在pyton中使用特殊字符?

如何在弹性搜索中使嵌套字段中的子字段平坦?

如何在Java mongodb驱动程序中使用“ _id”字段查询文档?

如何在Elasticsearch Python中使用特定字段名称从多个索引中删除文档?

如何在嵌套子文档mongodb中使用数组查找字段?

如何在$ project中的$ toString中使用MongoDB上的子文档字段?

如何在Kubernetes中使用VPA自动缩放弹性搜索?

如何在嵌入文档中使用`$size`?

如何在mongodb中使用$ in聚合文档?

如何在HTML文档中使用for循环

使用C#在Word文档中查找特殊文本

如何使用python更新弹性搜索文档

如何在Kofax Transformation脚本中使用批处理字段名称

Zabbix操作-如何在自定义脚本中使用默认字段

如何在Elasticsearch过滤器脚本中使用嵌套字段

如何在AngularFire中使用文档ID查询文档?

如何在Java mongodb驱动程序中使用“ _id”字段而不使用集合名称来查询文档?

如何在python中使用这个脚本

如何在bash脚本中使用$ SECONDS?