繁体   English   中英

ElasticSearch根据找到短语的字段对文档进行排序

[英]ElasticSearch sorting document based on fields that the phrase is found

在ElasticSearch中,如何根据以下字段的顺序查找短语来对文档进行排序。

搜索短语:迈阿密字段:标题,内容,主题

如果在“标题”,“内容”和“主题”中找到该短语,则它将在其他文档之前显示仅在“内容”中找到该短语。

也许有一种说法:如果在“标题”中找到短语,则权重为2;如果在“内容”中找到短语,则权重为1.5;如果在“主题”中找到的短语,则权重为1。

这将是_score的总和(权重)

我当前的查询看起来像

{
  "index": "abc",
  "type": "mydocuments",
  "body": {
    "query": {
      "multi_match": {
        "query": "miami",
        "type": "phrase",
        "fields": [
          "title",
          "content",
          "topics",
          "destinations"
        ]
      }
    }
  }
}

您可以带有插入符号^ 字段使用增强功能,以使其得分高于其他匹配字段

{
  "index": "abc",
  "type": "mydocuments",
  "body": {
    "query": {
      "multi_match": {
        "query": "miami",
        "type": "phrase",
        "fields": [
          "title^10",
          "content^3",
          "topics",
          "destinations"
        ]
      }
    }
  }
}

在这里,我对title施加了10的权重,对content施加了3的权重。 文档将以_score降序返回,因此您需要提高您认为更重要的字段的分数; 用于提升的值取决于您,可能需要一些尝试和改进才能按您的首选顺序退回文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM