数组字段得分策略的问题

ruby_2016 2022-07-12 11:27:28
GET blog/_search
{
  "query": {
    "match": {
      "tags": {
        "query": "数学"
      }
    }
  }
}


# 返回
      {
        "_index" : "blog",
        "_type" : "_doc",
        "_id" : "4mVt8IEBjnqWAWJWaCpF",
        "_score" : 0.31713706,
        "_source" : {
          "tags" : [
            "数学",
            "化学"
          ]
        }
      },
      {
        "_index" : "blog",
        "_type" : "_doc",
        "_id" : "4GVt8IEBjnqWAWJWFCqt",
        "_score" : 0.26706278,
        "_source" : {
          "tags" : [
            "数学",
            "语文"
          ]
        }
      }

第一个文档匹配到了数组的第一个元素【数学】和第二个元素的【学】,第二个匹配到了数组的第一个元素【数学】,现在想用匹配度的最高的当成文档的score,比如第一个文档用匹配到的【数学】的score当成文档的score,请问可以这样么

...全文
382 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruby_2016 2022-07-12
  • 打赏
  • 举报
回复

改了下结构,改为nested

PUT blog
{
  "mappings": {
    "properties": {
      "tags": {
        "type": "nested" 
      }
    }
  }
}

POST blog/_doc
{
  "tags": [
    {"name": "数学"},
    {"name": "化学"}
  ]
}

POST blog/_doc
{
  "tags": [
    {"name": "数学"},
    {"name": "语文"}
  ]
}

GET blog/_search
{
  "query": {
    "nested": {
      "path": "tags",
      "query": {
        "match": {
          "tags.name": "数学"
        }
      },
      "score_mode": "max"
    }
  }
}

10,431

社区成员

发帖
与我相关
我的任务
社区描述
Elastic 中国社区
其他 企业社区
社区管理员
  • Elastic 中国社区官方博客
  • 今天吃饭用大碗
  • Skipper_x
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧