如何防止ElasticSearch在使用Java客户端时向文档添加转义字符

qojgxg4l  于 11个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(142)

ElasticSearch在使用Java客户端时向文档添加转义字符(8.11)
我有一个提供以下数组结构的数据库:
第一个月
当我尝试像这样将这个数组插入ElasticSearch文档时:

br.operations(op -> op
                .index(idx -> idx
                        .index(tableName)
                        .id(crawlingEntry.geturl_id())
                        .document(crawlingEntry)
                )
        );

字符串
我在ElasticSearch索引中得到以下(转义)表示:
"[\"Texas\", \"Texas\", \"Sidebet City\"]"
如何防止客户端转义括号(“)?

注意:crawlingEntry对象中的String正确显示,没有转义字符。

6rqinv9w

6rqinv9w1#

调整crawlingEntry对象:

public class CrawlingEntry {
    // 
    private List<String> yourArrayField;

    // 
}

字符串
当你设置这个字段时,用一个实际的列表来做:

crawlingEntry.setYourArrayField(Arrays.asList("Texas", "Texas", "Sidebet City"));


然后,当你在Elasticsearch中索引这个对象时,Java客户端会将这个列表序列化为一个JSON数组,它会像你期望的那样存储在Elasticsearch中:

{
  "yourArrayField": ["Texas", "Texas", "Sidebet City"]
}

相关问题