Экспорт индекса из 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
значение, так что количество поездок туда и обратно уменьшается.