我已经准备好这篇文章
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"
}
}
}
该查询将查找包含
games
或usa
中的title1
AND / OR title2
的文档,但是_score
将根据单个最佳匹配字段来计算。例如-title1
包含games
和title2
包含games usa
,则_score
将是title2
中的一个。 best_fields
最有用。 在
most_fields
中:GET blablabla/_search
{
"query" : {
"multi_match": {
"query": "games usa",
"fields": ["title1", "title2"],
"type": "most_fields"
}
}
}
此查询将查找在
games
或usa
中包含title1
AND / OR title2
的文档,但是_score
将根据所有字段的组合进行计算。例如-title1
包含games
和title2
包含games usa
,则_score
将是title1
和title2
的分数的组合希望这可以帮助