我已经准备好这篇文章
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html

但我自己却不知道。

让我们进行以下两个查询:

首先

GET blablabla/_search
{
  "query": {
    "multi_match": {
      "query": "games usa",
      "fields": ["title1", "title2"],
      "type": "best_fields"
    }
  }
}

第二
get blablabla/_search
{
  "query" : {
    "multi_match": {
      "query": "games usa",
      "fields": ["title1", "title2"],
      "type": "most_fields"
    }
  }
}

我认为第一个查询的意思是:



但是,我不知道第二个是什么意思。

我可以寻求帮助吗?

(基于elasticsearch 2.2)

最佳答案

每当在Elastic Search中执行搜索操作时,都会计算每个匹配文档的相关性。根据文档-



根据上述示例

GET blablabla/_search
{
"query": {
"multi_match": {
  "query": "games usa",
  "fields": ["title1", "title2"],
  "type": "best_fields"
   }
  }
}

该查询将查找包含gamesusa中的title1 AND / OR title2的文档,但是_score将根据单个最佳匹配字段来计算。例如-
  • 如果在同一文档中title1包含gamestitle2包含games usa,则_score将是title2中的一个。
  • 当您搜索在同一字段中最好找到的多个单词时,
  • best_fields最有用。

  • most_fields中:
    GET blablabla/_search
    {
    "query" : {
    "multi_match": {
      "query": "games usa",
      "fields": ["title1", "title2"],
      "type": "most_fields"
       }
      }
    }
    

    此查询将查找在gamesusa中包含title1 AND / OR title2的文档,但是_score将根据所有字段的组合进行计算。例如-
  • 如果在同一文档中title1包含gamestitle2包含games usa,则_score将是title1title2的分数的组合

  • 希望这可以帮助

    08-24 22:12