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