【发布时间】:2017-11-12 20:08:34
【问题描述】:
在 Elasticsearch 中,有没有办法检查结果是按哪个字段排序的?我想要排序子句的内部命中之类的东西。
想象一下您的文档有这种形式:
{"numerals" : [ // nested
{"key": "point", "value": 30},
{"key": "points", "value": 200},
{"key": "score", "value": 20},
{"key": "scores", "value": 40}
]
}
然后您按以下方式对结果进行排序:
{"numerals.value": {
"nested_path": "numerals",
"nested_filter": {
"match": {
"numerals.key": "score"}}}}
现在我不知道如何知道实际排序结果的字段:在本文档中可能是scores,但在其他文档中可能是score?有 2 个问题 - 1. 您不能对嵌套字段使用内部点击或突出显示。 - 2.即使可以,但如果有多个匹配的候选人,它也不能解决问题。
【问题讨论】:
-
如果您在嵌套过滤器中使用
term查询会怎样? -
@Val 好吧,我想用
match。 -
很公平,为什么你有
score和scores?为什么不简单地使用相同的术语? -
@Val 显示的文档只是一个妥协的例子。真实的要复杂得多。我什至无法期待
keys 会发生什么。 -
很公平,我只是想先看看是否有一个简单的方法;-)
标签: elasticsearch elasticsearch-5