Java RestHighLevelClient-弹性搜索-如何添加特殊字符'/';输入id字段值
在弹性搜索中插入带“/”的字段值时获取异常 代码: 例外情况:Java RestHighLevelClient-弹性搜索-如何添加特殊字符'/';输入id字段值,java,
elasticsearch,aws-elasticsearch,resthighlevelclient,Java,
elasticsearch,Aws Elasticsearch,Resthighlevelclient,在弹性搜索中插入带“/”的字段值时获取异常 代码: 例外情况: Path part [/EACVBSDSFASFA] couldn't be encoded: java.lang.IllegalArgumentException java.lang.IllegalArgumentException: Path part [/EACVBSDSFASFA] couldn't be encoded at org.elasticsearch.client.RequestConverters$Endpoi
Path part [/EACVBSDSFASFA] couldn't be encoded: java.lang.IllegalArgumentException
java.lang.IllegalArgumentException: Path part [/EACVBSDSFASFA] couldn't be encoded
at org.elasticsearch.client.RequestConverters$EndpointBuilder.encodePart(RequestConverters.java:1142)
at org.elasticsearch.client.RequestConverters$EndpointBuilder.addPathPart(RequestConverters.java:1104)
at org.elasticsearch.client.RequestConverters.endpoint(RequestConverters.java:704)
at org.elasticsearch.client.RequestConverters.index(RequestConverters.java:309)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1761)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1735)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1697)
at org.elasticsearch.client.RestHighLevelClient.index(RestHighLevelClient.java:929)
at
.....
.....
Caused by: java.net.URISyntaxException: Illegal character in port number at index 30:
问题不是因为字段,而是因为您将
/
用作id的一部分
我猜这是一个限制,以防止资源使用必须编码ID的位置,例如。http://localhost:9200/index/_type/%2FEACVBSDSFASFA,注意/
->%2F
转换
在任何情况下-首选url安全ID,例如:
- 增量ID
- 伪装
- 如果要使用base64 ID,请使用它的base64url版本-其中
,+
,=
将替换为URI安全字符/
Path part [/EACVBSDSFASFA] couldn't be encoded: java.lang.IllegalArgumentException
java.lang.IllegalArgumentException: Path part [/EACVBSDSFASFA] couldn't be encoded
at org.elasticsearch.client.RequestConverters$EndpointBuilder.encodePart(RequestConverters.java:1142)
at org.elasticsearch.client.RequestConverters$EndpointBuilder.addPathPart(RequestConverters.java:1104)
at org.elasticsearch.client.RequestConverters.endpoint(RequestConverters.java:704)
at org.elasticsearch.client.RequestConverters.index(RequestConverters.java:309)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1761)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1735)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1697)
at org.elasticsearch.client.RestHighLevelClient.index(RestHighLevelClient.java:929)
at
.....
.....
Caused by: java.net.URISyntaxException: Illegal character in port number at index 30: