elasticsearch,parent-child,relevance,Sorting,elasticsearch,Parent Child,Relevance" /> elasticsearch,parent-child,relevance,Sorting,elasticsearch,Parent Child,Relevance" />

Sorting 直接查询和hasChild查询的弹性搜索相关性分数不同

Sorting 直接查询和hasChild查询的弹性搜索相关性分数不同,sorting,elasticsearch,parent-child,relevance,Sorting,elasticsearch,Parent Child,Relevance,我们有一些父子关系的数据。但当我们搜索两个场景时,分数是不同的 对于这种情况,索引中只有一条记录和一个子记录 a)直接查询子索引类型进行搜索 直接查询: { "from": 0, "size": 20, "sort": [ { "_score": { "order": "desc" } } ], "query": { "filte

我们有一些父子关系的数据。但当我们搜索两个场景时,分数是不同的

对于这种情况,索引中只有一条记录和一个子记录

a)直接查询子索引类型进行搜索

直接查询:

{
    "from": 0,
    "size": 20,
    "sort": [
        {
            "_score": {
                "order": "desc"
            }
        }
    ],
    "query": {
        "filtered": {
            "query": {
                "bool": {
                    "must": [
                        {
                            "bool": {
                                "should": [
                                    {
                                        "query_string": {
                                            "query": "search\\ text",
                                            "fields": [
                                                "TYPECHILD.MAINTITLE.edgengramanalyzed^4"
                                            ],
                                            "default_operator": "and",
                                            "boost": 10
                                        }
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
        }
    }
}
我们得到了一些分数的儿童记录

b)使用HasChild搜索同一记录[has\u child:score\u mode-max]。

HasChild查询:

{
    "from": 0,
    "size": 20,
    "sort": [
        {
            "_score": {
                "order": "desc"
            }
        }
    ],
    "query": {
        "filtered": {
            "query": {
                "bool": {
                    "must": [
                        {
                            "has_child": {
                                "type": "TYPE",
                                "score_mode": "max",
                                "query": {
                                    "bool": {
                                        "must": [
                                            {
                                                "bool": {
                                                    "should": [
                                                        {
                                                            "query_string": {
                                                                "query": "search\\ text",
                                                                "fields": [
                                                                    "MAINTITLE.edgengramanalyzed^4"
                                                                ],
                                                                "default_operator": "and",
                                                                "boost": 10
                                                            }
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
}
这里我们得到了孩子的父母记录,但同样的分数是不同的