wildcard
通配符运算符是与一个或多个字符匹配的占位符。例如,*通配符运算符匹配零个或多个字符。可以将通配符运算符与其他字符组合以创建通配符模式。
注意字段类型:
index的mapping字段类型
- text fields
- keyword fields
文本字段将字符串 “tokenize” 为多个 token,每个token 通常代表单词。搜索 quick foxes 的搜索者因此可以匹配谈论 quick brown fox 的文章。
keyword 字段通常用于较短的结构化内容,例如国家/地区代码,无需分析即可将其编入索引作为单个 token。然后,分析师可以使用这些数据,比如,运用 aggregation 可视化受欢迎的度假胜地等。
如果没有用户明确的映射选择,Elasticsearch 的默认索引模板假定 JSON 文档中显示的字符串值应同时索引为 text 字段和 keyword 字段。目的是,如果字符串表示应该被切成多个单词 token 以进行搜索的散文,或者当被用于 “热门目的地”条形图中展示时应作为单个结构化值(例如城市名称 “New York”)。
例子:模糊查询*桃公*,建议使用字段keyword类型
GET /_search
{
"query":{
"wildcard":{
"name":"*桃公*"
}
}
}