Solr CSV响应编写器:如何获得无封装器

Solr CSV响应编写器:如何获得无封装器,csv,solr,Csv,Solr,我需要从我的Solr查询中返回CSV输出,所以我使用Solr的CSV响应编写器 使用wt=csv可以正常工作,无需更改csv输出的默认值,但我有一个要求:我需要以选项卡分隔的csv,而不需要引用任何文本值 选项卡分离很容易,因为我可以在Solr csv responses writer中将选项卡指定为csv.separator 问题是如何摆脱封装: csv字段封装的默认值为“。 但是设置enclosurator=''或enclosurator=None将返回错误无效的封装器 该文档中似乎没有这方

我需要从我的Solr查询中返回CSV输出,所以我使用Solr的CSV响应编写器

使用
wt=csv
可以正常工作,无需更改csv输出的默认值,但我有一个要求:我需要以选项卡分隔的csv,而不需要引用任何文本值

选项卡分离很容易,因为我可以在Solr csv responses writer中将选项卡指定为
csv.separator

问题是如何摆脱封装: csv字段封装的默认值为
。 但是设置
enclosurator=''
enclosurator=None
将返回错误
无效的封装器

该文档中似乎没有这方面的文档


我如何才能完全抑制封装?

您将无法抑制封装,java源代码需要1个字符长度的封装器:

String encapsulator = params.get(CSV_ENCAPSULATOR);
String escape = params.get(CSV_ESCAPE);
if (encapsulator!=null) {
  if (encapsulator.length()!=1) throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Invalid encapsulator:'"+encapsulator+"'");
  strat.setEncapsulator(encapsulator.charAt(0));
}
您可以做什么:

  • 通过继承CSVResponseWriter,编写您自己的自定义NoEncapsulatorCSVResponseWriter,并修改代码,使其不使用封装器。这并不困难,但主要是一个麻烦
  • 使用一些独特的封装器(例如ø),然后在客户端添加一个后处理步骤来删除它