如何在Elasticsearch中查询运行时字段上的不同索引



我正在阅读如何使用运行时字段并遵循此指令:https://www.elastic.co/guide/en/elasticsearch/reference/current/runtime-search-request.html

它给出的示例如下,它创建了一个具有day_of_week名称的运行时字段。我的问题是我如何在source字段内为运行时字段做另一个查询。也就是说,day_of_week的值保存在另一个索引中。这可能吗?

GET my-index-000001/_search
{
"runtime_mappings": {
"day_of_week": {
"type": "keyword",
"script": {
"source": "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))"
}
}
},
"aggs": {
"day_of_week": {
"terms": {
"field": "day_of_week"
}
}
}
}

不能在脚本中进行交叉索引访问。

我正在寻找类似的解决方案。我发现有两件事可能会满足你的需求:

<<h2>丰富处理器/h2>

您可以使用富集处理器在摄取期间将现有索引中的数据添加到传入文档中。例如,您可以使用富集处理器来:

  • 根据已知IP地址识别web服务或供应商
  • 根据产品id向零售订单添加产品信息
  • 根据电子邮件地址补充联系信息
  • 根据用户坐标添加邮政编码

https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-enriching-data.html

查找运行时字段

查找运行时字段可用于在查询阶段通过同时从相关索引中获取字段来丰富数据。通过这种方式,您可以轻松地丰富频繁更改的数据,并在何时使用其他数据更新主索引时做出明智的决定。

https://opster.com/guides/elasticsearch/search-apis/lookup-runtime-fields/

最新更新