Экспорт индекса из Solr в файл с полями, недопустимыми для FieldCache

Я пытаюсь экспортировать индекс Solr в файл JSON. Тем не менее, среди 2 полей, которые меня интересуют, одно из них (поле A) является multivaluedдругое (поле B) neither indexed nor has doc values (в этом поле, вероятно, отсутствует схема). Оба вызывают ошибку, которая говорит can not use FieldCache on a field which is ...

Схемы этих полей находятся на удаленном сервере и не должны быть изменены. Можно ли тогда экспортировать индекс с этими полями? Спасибо!

ps если возможно я бы тоже хотел fl на этих 2 полях, так как они все, что мне нужно.

1 ответ

Решение

В этом случае вы, вероятно, захотите написать скрипт экспорта самостоятельно, используя метку курсора для ускорения поиска (для использования функции / export в полях должна быть включена опция docValues).

На нескольких языках есть примеры для извлечения всех документов на странице меток курсора, и они могут быть применены почти напрямую (вам придется добавить JSON-запись самостоятельно) к вашему набору результатов.

SolrQuery q = (new SolrQuery(some_query)).setRows(r).setSort(SortClause.asc("id"));
String cursorMark = CursorMarkParams.CURSOR_MARK_START;
boolean done = false;
while (! done) {
  q.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);
  QueryResponse rsp = solrServer.query(q);
  String nextCursorMark = rsp.getNextCursorMark();
  doCustomProcessingOfResults(rsp);
  if (cursorMark.equals(nextCursorMark)) {
    done = true;
  }
  cursorMark = nextCursorMark;
}

Убедитесь, что вы используете довольно большой r значение, так что количество поездок туда и обратно уменьшается.

Другие вопросы по тегам