带连字符的弹性搜索查询字符串
elasticsearch query string with hyphens
弹性搜索 5.6
我将我的字段定义为文本字段,使用空格分析器以避免在连字符上拆分。
我想查询一下,使用查询字符串查询,如:
{
"query": {
"query_string": {
"query": "CODE-13-006",
"default_operator": "AND",
"analyzer": "whitespace"
}
}
}
因此,如果我没有指定要搜索的字段,(据我所知)它应该查询“*”字段。尽管像上面这样的查询没有 return 任何东西,但如果我要求特定字段,它会找到匹配项。
有什么提示吗?
我想答案就在这里
对于弹性 5.6,您可以使用字段名称 _all
好的,万一有人有类似的疑问...
我的问题是,即使我在查询 _all 字段(连接所有其他字段的值),我也忘记了默认情况下它使用标准分析器(用连字符分隔标记)。因此,即使我的字段使用关键字分析器,在我的 _all 查询中我也找不到它 - 仅仅是因为它被标准分析器拆分了。
愚蠢的错误,但也许将来会对某人有所帮助;)
弹性搜索 5.6
我将我的字段定义为文本字段,使用空格分析器以避免在连字符上拆分。
我想查询一下,使用查询字符串查询,如:
{
"query": {
"query_string": {
"query": "CODE-13-006",
"default_operator": "AND",
"analyzer": "whitespace"
}
}
}
因此,如果我没有指定要搜索的字段,(据我所知)它应该查询“*”字段。尽管像上面这样的查询没有 return 任何东西,但如果我要求特定字段,它会找到匹配项。
有什么提示吗?
我想答案就在这里_all
好的,万一有人有类似的疑问...
我的问题是,即使我在查询 _all 字段(连接所有其他字段的值),我也忘记了默认情况下它使用标准分析器(用连字符分隔标记)。因此,即使我的字段使用关键字分析器,在我的 _all 查询中我也找不到它 - 仅仅是因为它被标准分析器拆分了。
愚蠢的错误,但也许将来会对某人有所帮助;)