直接发送http请求到ES,如何处理字符串参数

背景

在工作中直接使用向ES发送http请求的方式来获取结果,一般请求体中所用的参数来自于用户输入,那么里面可能包含英文双引号、反斜杠特殊字符,所以我们对这种特殊情况进行处理

http请求体如下所示,目前的情况是关键词 中国 中可能含有上面的特殊字符,所以我们在发送http请求之前,需要先进行处理

{
	"query": {
		"term": {
			"normalTitle": "中国"
		}
	},
	"_source": ["title", "website", "normalTitle", "titleMeaning"]
}

解决办法

将英文双引号、反斜杠转义即可,方法如下:

public static String dealSpecialCharacter(String str) {
    if (StringUtils.isBlank(str)) {
        return str;
    }
    str = str.replace("\\", "\\\\");
    str = str.replace("\"", "\\\"");
    return str;
}
上一篇:ES常见查询语句


下一篇:汇编 | 数据处理的两个基本问题