mic*_*lam 7 elasticsearch elasticsearch-2.0
我已经准备好这篇文章 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二
get blablabla/_search
{
"query" : {
"multi_match": {
"query": "games usa",
"fields": ["title1", "title2"],
"type": "most_fields"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为第一个查询意味着:
获取title1或title2字段中包含(游戏)或(美国)或(游戏和美国)单词的文档.
但是,我不知道第二个是什么意思.
我可以请求帮助吗?
(我在弹性搜索2.2)
Ric*_*cha 14
无论何时执行搜索操作Elastic Search,都会计算每个匹配文档的相关性.根据文档 -
每个文档的相关性得分由称为的正浮点数表示
_score._score越高,文档越相关.
根据你上面提到的例子
GET blablabla/_search
{
"query": {
"multi_match": {
"query": "games usa",
"fields": ["title1", "title2"],
"type": "best_fields"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个查询就会发现其中包含的文件games 和/或 usa在title1或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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个查询就会发现其中包含的文件games 和/或 usa在title1或title2不过_score会从所有字段的组合来计算.例如-
title1包含games并title2包含games usa在同一文档中,则将_score来自title1和的分数组合title2希望这可以帮助