2017-02-09 7 views
1

SolrのCSV応答ライターを使用しているので、私のSolrクエリからCSV出力を取得する必要があります。Solr CSVレスポンスライター:カプセル化を使用しない方法

wt=csvを使用してもすべて正常に動作しますが、CSV出力のデフォルト値は変更されませんが、1つの要件があります。テキスト値を一切引用せずにタブ区切りのCSVが必要です。

タブの区切りは、Solr csv respond writerでcsv.separatorというタブを指定できるので簡単です。

問題は、カプセル化を取り除く方法です。 csvフィールドのカプセル化のデフォルト値は"です。 ただし、encapsulator=''またはencapsulator=Noneを設定すると、エラーInvalid encapsulatorが返されます。

Solr Wikiにはこれに関するドキュメントがないようです。

どのようにカプセル化を抑制することができますか?

答えて

1

次のことができるようにするつもりはありません、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)); 
} 

あなたは何ができるか:

  1. から継承することで、独自のカスタムNoEncapsulatorCSVResponseWriterを書きますおそらく、CSVResponseWriterとカプセル化を使用しないようにコードを変更します。難しいことではありませんが、大抵は面倒です。
  2. いくつかの一意のカプセル化装置(たとえば、ø)を使用して、クライアント側で後処理ステップを追加するだけでそれを削除します。簡単ですが、余分なステップが必要です...
関連する問題