我在请求文件在带空格的字段上发出请求时遇到了麻烦.映射看起来像这样:
"myIndexName": {
"mappings": {
"myType": {
"properties": {
"myPropertyWithSpaces": {
"type": "string",
"analyzer": "analyzer_keyword"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
"analyzer_keyword"是带有关键字标记器和小写过滤器的cutom分析器.当我用"analyzer_keyword"分析器发送"_analyze"请求并查询"firstWord secondWord"时,我只得到令牌"firstword secondword" - 一切都按预期工作.但是,如果我不将空格字符更改为"?",则查询字符串请求不返回任何内容.通配符; 有趣的是,如果我告诉elasticsearch明确地使用这个"analyzer_keyword",那么小写仍然有效并且这种行为不会改变.
"query": {
"query_string": {
"query": "firstWord secondWord",
"default_field": "myPropertyWithSpaces",
"analyzer": "analyzer_keyword"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4284 次 |
| 最近记录: |