Использование внешнего файла для повышения результатов. Изменения во внешнем файле не отражены

Я использую 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 помогает?

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