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 为什么你 运行 关注这个问题。
当我使用包含 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 为什么你 运行 关注这个问题。