Использование внешнего файла для повышения результатов. Изменения во внешнем файле не отражены
Я использую drupal 7 с модулем apachesolr. У меня есть поле внешнего файла, чтобы повысить результаты, которые я хочу. Имя файла - external_eff_ranking. В схеме у меня есть:
<fieldType name="pfloat" class="solr.FloatField" omitNorms="true"/>
<fieldType name="file" keyField="id" defVal="1" stored="false" indexed="false" class="solr.ExternalFileField" valType="pfloat"/>
<dynamicField name="eff_*" type="file"/>
Формат внешнего файла:
id1=3.1
id2=4.2
id3=5
Это работает, как и ожидалось, результаты повышаются в соответствии со значениями в файле. Проблема заключается в том, что при изменении значений результаты не отражают изменения. Я понимаю, что мне нужно как-то зафиксировать изменения, но я не могу понять, как.
Я пробовал такие вещи, как:
curl http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<commit />'
но не сработало.
РЕШИТЬ
Следующая строка в моем solrconfig.xml решила проблему:
<requestHandler name="/reloadCache" class="org.apache.solr.search.function.FileFloatSource$ReloadCacheRequestHandler" />
Затем я нажимаю этот URL (http://localhost:port/reloadCache) после каждого обновления файла
1 ответ
Похоже, это связано с ошибкой в solr, которая влияет на результаты в кэше. Может быть, попытка reloadCache помогает?