使用elasticsearch,我试图将计算出的distance
字段添加到地理搜索中。我只想在搜索文档中附加一个额外的计算字段,但是当我通过“
script_fields”添加计算字段时,仅返回该字段。
我尝试添加通配符字段部分,但它不会影响结果。
如何使此查询返回complete documents
添加了额外计算字段的?
GET /ocsm_test/inventory/_search
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"geo_distance": {
"distance": "2km",
"address.geo.location": [],
"loc.address.geo.location": [
151.2165507,
-33.8732887
]
}
}
}
},
"aggs": {
"partNumber": {
"terms": {
"field": "partNumber",
"order": {
"_term": "asc"
}
}
},
"location": {
"terms": {
"field": "loc.identifier",
"order": {
"_term": "asc"
}
}
}
},
"script_fields": {
"distance": {
"params": {
"lat": -33.8732887,
"lon": 151.2165507
},
"script": "doc['loc.address.geo.location'].distanceInKm(lat,lon)"
}
},
"fields": [
".*"
],
"post_filter": {
"bool": {
"must": [
{
"term": {
"partNumber": "p-0099393-3"
}
}
]
}
}
}
不建议检索字段,而应使用源过滤。
所以,代替这个
"fields": [
".*"
],
用这个:
"_source": true
问题内容: 为什么在能够过滤查询时无法看到_timestamp字段? 以下查询返回正确的文档,但不会返回时间戳本身。如何返回时间戳? 映射为: 样本输出: 问题答案: 启用时间戳字段后,默认情况下会对其进行索引但不存储。因此,尽管您可以通过时间戳字段进行搜索和过滤,但是您无法轻松地通过记录来检索它。为了能够检索时间戳字段,您需要使用以下映射重新创建索引: 这样,您将能够检索到时间戳记以来的毫秒数。
我正在使用ElasticSearch 7.3来查询一些文档, 我想在查询响应中只返回每个文档的特定字段, 我发现可以使用来实现这一点, 我可以从Kibana使用这个查询来实现这一点- 返回给我正确的数据- 但我无法使用ElasticSearch的节点客户端实现同样的功能- 有人能帮我找到正确的方法来实现我的用例吗? 引用- https://www.elastic.co/guide/en/elast
问题内容: 我想在我存储在Elasticsearch 7.3中的文档中搜索单词 我想要在以前版本的Elasticsearch上工作的示例是: 但是此查询不适用于Elasticsearch 7+,因为已删除。现在该字段消失了,我该如何编写查询以完成相同的任务? 注意:我已经阅读了将所有字段复制到自定义字段中的建议,但是这要求显式地写出每个字段以包括在all_fields字段中。由于我有很多小字段,因
我找到了一种使用elasticsearch查询获取数据的方法。但我目前的问题是在spring boot查询中翻译它。 我的查询如下: 索引中存储的所有文档都有一个字段,其类型定义为 我的问题是: 如何翻译,使用spring boot返回距离。 我目前的代码是: 我试图从这里使用ScriptField,并在这里看到了一个示例,但目前还没有找到任何解决方案。 我该怎么用? 如果认为,在找到如何返回距离
问题内容: 我正在使用Elasticsearch索引我的文档。 是否有可能指示它仅返回特定字段,而不是它存储的整个json文档? 问题答案: 是的 使用源过滤器。如果您使用JSON搜索,它将看起来像这样: 在ES 2.4及更低版本中,您还可以在search API中 使用fields选项: ES 5+中已弃用此功能。而且,源过滤器更强大!
问题内容: 我正在尝试创建一个脚本字段,该脚本字段将计算两个时间戳之间的时间差,然后在该脚本字段上聚合一个。 我首先尝试: 在合计平均值下产生价值。 然后我尝试了: 生成了一条错误消息,内容为:“在映射中找不到[timedifference]的字段” 问题答案: 简单地将脚本移到聚合上怎么样?