Солярий — необходимо обновить набор результатов только для чтения

Я создаю интерактивный поисковый сервис для клиента, и часть того, что нам нужно, это возможность добавлять «теги» в документы. Эти теги будут как существующими, так и пользовательскими. Схема была настроена для поддержки этого, но у меня возникли проблемы с Solarium PHP при обновлении набора результатов.

Например, если пользователь ищет «Переполнение» в нашей базе данных, и это возвращает результаты 1-1000+, ему необходимо иметь возможность пометить весь этот набор результатов любым количеством тегов.

Поэтому я беру набор результатов из execute () и в настоящее время не могу изменить возвращенные документы, за исключением того, что «документ только для чтения не может быть изменен».

У кого-нибудь есть обходной путь для этого?

0

Решение

Для обновляемого документа вы должны использовать этот класс: Солярий \ тип_запроса \ Update \ Query \ Document

Солярий использует этот тип документа по умолчанию для запросов на выбор для двух
причины:

в большинстве случаев обновление не требуется, поэтому оно будет
накладные расходы, чтобы препятствовать использованию Solr в качестве базы данных, как при чтении —
изменение — сохранение. Почти все схемы имеют только индексные поля. Есть
нет способа прочитать значение этих полей, поэтому эти данные будут потеряны
при повторном сохранении документа! Обновления обычно должны быть сделаны на основе
ваши исходные данные (то есть база данных). Если вы действительно уверены, что хотите
чтобы обновить данные Solr, вы можете установить класс документа для чтения и записи в качестве
тип документа для вашего запроса выбора, изменить документы и использовать их
в запросе на обновление.

http://solarium.readthedocs.org/en/stable/documents/

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]