2017-02-09 7 views
1

Мне нужно вернуть CSV-выход из моих запросов Solr, поэтому я использую скрипт ответов CSV от Solr.Писатель откликов Solr CSV: Как не получить инкапсулятор

Все работает нормально, используя wt=csv без изменения значений по умолчанию для вывода CSV, но у меня есть одно требование: мне нужен CSV с разделителями разделов без цитирования текста.

Разделение табуляции легко, так как я могу указать вкладку как csv.separator в записи ответов Solr csv.

Проблема в том, как избавиться от инкапсуляции: Значения по умолчанию для инкапсуляции полей 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. Используйте некоторый уникальный инкапсулятор (например, ø), а затем добавьте шаг постпроцесса на свою клиентскую сторону, который просто удалит его. Легче, но вам нужен этот дополнительный шаг ...

 Смежные вопросы

  • Нет связанных вопросов^_^