在Elasticsearch中使用特殊字符搜索
我无法在Elasticsearch中以特殊字符结尾/开头的字符进行搜索。就像“ 123456!”
{ "query": {
"query_string": {
"default_field": "password",
"query": "123456!"
}
}
}
我的映射是
{ "mappings": {
"passwords": {
"properties": {
"date": { "type": "date"},
"password": { "type": "string","index": "not_analyzed"},
}
}
}
}
它给我错误,我可以在搜索查询(或映射)中做什么,以便特殊字符将被视为搜索字符串的一部分?
回答:
由于您的password
字段是not_analyzed
(好!),请尝试123456!
用双引号引起来进行完全匹配:
{ "query": {
"query_string": {
"default_field": "password",
"query": "\"123456!\""
}
}
}
这样做的另一种方法是keyword
在query_string
查询中设置分析器(但请务必转义,!
因为它是保留字符(对于NOT
操作员)
{ "query": {
"query_string": {
"default_field": "password",
"query": "123456\!",
"analyzer": "keyword"
}
}
}
以上是 在Elasticsearch中使用特殊字符搜索 的全部内容, 来源链接: utcz.com/qa/435527.html