Elasticsearch:具有内部匹配项的嵌套查询的随机分数

时间:2019-02-05 12:56:23

标签: elasticsearch

使用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中,但是结果是相同的,没有随机排序。

非常感谢您的帮助!

0 个答案:

没有答案