Перезагрузка внешнего файла поля с сервером вверх
Я пытаюсь реализовать поле внешнего файла, чтобы изменить значения рейтинга в Solr.
Я определил поле и тип поля в схеме и в "solrconfig.xml" ниже <query>
теги, создали внешний файл и добавили слушатели перезагрузки, как описано в руководстве по ссылкам:
После запуска сервера я могу сортировать документы на основе этого ранее созданного поля, однако, когда я изменяю значения, когда сервер работает, и когда я делаю новый поисковый запрос, я не могу видеть обновленное список рангов (ни обновленные оценки рангов).
Я также попытался добавить обработчик запроса перезагрузки, как это было предложено в другом посте, и попытался принудительно зафиксировать ( http://HOST:PORT/solr/update?commit=true), но он говорит:
DirectUpdateHandler2 No uncommitted changes. Skipping IW.commit.
DirectUpdateHandler2 end_commit_flush
Какие-либо предложения?
1 ответ
Использование ExternalFileFields для скоринга на самом деле уже не так полезно, поскольку Solr и Lucene теперь поддерживают обновления на месте для значений, использующих docValues.
Затем вы можете использовать эти поля непосредственно из документа для оценки, и вы можете обновить их без необходимости обновления всего документа. Таким образом, вам не нужно ничего перезагружать извне, и Solr может автоматически управлять вашими кешами.
Существует три условия, которые должно пройти поле для обновлений на месте (при этом атомные обновления также могут использоваться, но для этого необходимо, чтобы все ваши поля были установлены как сохраненные):
Элементарная операция обновления выполняется с использованием этого подхода, только когда обновляемые поля удовлетворяют этим трем условиям:
являются неиндексированными (indexed="false"), несохраняемыми (сохраненными = "false"), однозначными (multiValued="false") числовыми docValues (docValues ="true") полями;
поле _version_ также является неиндексированным, не сохраненным однозначным полем docValues; а также,
цели копирования обновленных полей, если они есть, также являются неиндексированными, не сохраненными однозначными числовыми полями docValues.