Elasticsearch特殊字符搜索求助:如何搜索/-1/
Elasticsearch搜索特殊字符
/-1/的正确方法 核心原因
/-1/中的/和-都是Elasticsearch查询语法里的特殊字符:-是排除运算符,/若不作为正则边界符使用时也需转义,同时要注意不同查询类型的转义规则。
可行的查询方式
查询字符串搜索(搜索框直接使用)
只需对特殊字符做一次转义,正确写法:message: "\/-1\/"正则表达式查询
如果要以正则方式匹配,需确保正则语法的转义正确,两种写法都有效:message:/\/\-1\//(或更简洁的写法,因
-未在字符集中,无需转义)message:/\/-1\//Term精确匹配(针对keyword类型字段)
如果message字段有对应的keyword子字段(不分词,存储原始值),用term查询无需转义,直接匹配原始字符串:{ "query": { "term": { "message.keyword": "/-1/" } } }
之前写法无效的原因
message: "/\-1/":这里的-被Elasticsearch识别为排除运算符,导致查询逻辑偏离预期;message: "\\/\\-1\\/":做了双重转义,传递到Elasticsearch的内容是\/-1\/,多转义了一层,无法匹配目标字符串。
内容的提问来源于stack exchange,提问作者Malaiselvan
相关产品推荐
相关产品推荐

