我想知道为什么Elasticsearch
没有给我以下Multi Match Query的任何结果:
GET /stag/_search
{
"query": {
"multi_match": {
"type": "phrase_prefix",
"query": "ferran ma",
"fields": [ "fullName", "fullName.folded" ]
}
}
}
但它给了我结果:
GET /stag/_search
{
"query": {
"multi_match": {
"type": "phrase_prefix",
"query": "ferran may",
"fields": [ "fullName", "fullName.folded" ]
}
}
}
我认为每个单词可能有最小字符长度,但后来我看到了以下查询:
GET /stag/_search
{
"query": {
"multi_match": {
"type": "phrase_prefix",
"query": "ignasi t",
"fields": [ "fullName", "fullName.folded" ]
}
}
}
给我结果。所以我不知道发生了什么。
答案 0 :(得分:0)
似乎问题已解释here
match_phrase_prefix查询是一个穷人的自动完成。这个很 易于使用,可让您快速入门 像你一样搜索但其结果通常都足够好 有时候会让人感到困惑。
考虑查询字符串quick brown f。此查询通过创建来工作 快速和棕色的短语查询(即快速一词必须存在 并且必须遵循术语褐色)。然后它查看已排序的 术语字典,用于查找以f开头的前50个术语,并添加 这些术语用于短语查询。
问题在于前50个术语可能不包括狐狸这样的术语 短语快速棕色狐狸将无法找到。这通常不是 因为用户将继续输入更多字母直到该单词 他们正在寻找出现。