Elasticsearch match_phrase_query 和 space 不工作

Elasticsearch match_phrase_query with space don't work

当我使用包含 space 的字符串创建 match_phrase_query 时遇到问题,但并非总是如此 =/

3 个示例:

1/

  {
    "query" : {
              "match_phrase_prefix" : {
                "username" : {
                  "query":"maury"
                }
              }
    }
}

第一个示例有效并给我结果。

2/

  {
    "query" : {
              "match_phrase_prefix" : {
                "username" : {
                  "query":"maury chelsea"
                }
              }
    }
}

第二个例子,全名也可以。

3/

  {
    "query" : {
              "match_phrase_prefix" : {
                "username" : {
                  "query":"maury ch"
                }
              }
    }
}

这个例子没有用,我没有结果return。我不明白,因为它使用 1 个词和 2 个词,第二个词至少有 3-4 个字符,具体取决于我搜索的人的名字。

你遇到过这个问题吗?

谢谢你,Ludovic

这是因为您有很多以 ch 开头的术语。尝试添加 max_expansions 参数(默认为 50)并将其增加到(例如)100 以查看是否得到结果。

  {
    "query" : {
              "match_phrase_prefix" : {
                "username" : {
                  "query":"maury ch",
                  "max_expansions": 100     <--- add this
                }
              }
    }
}

official doc explains 为什么你 运行 关注这个问题。