使用inner_hits进行嵌套查询时,我很难获得随机的一组文档。我需要文件是随机的,而不是内部文件本身。
这是示例的映射:
{
"mappings": {
"doc": {
"properties": {
"faces": {
"type": "nested",
"properties": {
"cluster_id": {
"type": "integer"
}
}
}
}
}
}
}
现在,与健全性检查一样,以下查询将返回一组随机文档:
{
"query": {
"function_score": {
"random_score": {},
"query": {
"match_all": {}
}
}
}
}
但是现在,如果我尝试修改它以返回特定集群ID的内部匹配,那么结果将不再是随机的。这是查询:
{
"query": {
"function_score": {
"random_score": {},
"query": {
"nested": {
"path": "faces",
"query": {
"bool": {
"filter": [
{
"term": {
"faces.cluster_id": 0
}
}
]
}
},
"inner_hits": {}
}
}
}
}
}
我也尝试过将嵌套查询的查询位包装在function_score中,但是结果是相同的,没有随机排序。
非常感谢您的帮助!