短语使用通配符使用通配符,我可以匹配方面开始与一些值:与Elasticsearch查询字符串查询
{
"query": {
"query_string" : {
"query" : "subject:cell*"
}
}
}
这里subject
字段是keyword
场(非分析)。这工作正常,但我无法弄清楚如何找到以“蜂窝控制”开始的术语。尝试双引号没有取得预期的结果:
{
"query": {
"query_string" : {
"query" : "subject:\"cellular contr*\""
}
}
}
注:短语搜索正常工作与精确匹配,只是没有用通配符。我的猜测是星号不是在双引号内被解释为通配符运算符。那是对的吗?还有什么其他的方式来使用带有短语的通配符运算符吗?
注:我必须使用Query String Query,因为查询来自用户输入。
(我知道我可以诉诸正则表达式,但不希望)
默认值为'false',因此将其明确设置为false应该没有任何区别。但我为了以防万一,它被解释为“(subject:cellular)or(contr *)”,而不是我想要的。我也尝试过使用'analyze_wildcard'和'auto_generate_phrase_queries',但没有成功(虽然文档与他们所做的事情有点相似) – danmichaelo