使用外部文件来推动的结果。 在外部文件的更改不会反映(Using an external fil

2019-07-29 22:42发布

我使用的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" />

每个文件更新后(端口/ reloadCache HTTP://本地主机),然后我打这个网址

Answer 1:

看起来这是由于Solr的影响缓存结果的错误。 可尝试reloadCache帮助?



文章来源: Using an external file to boost results. Changes in the external file not reflected
标签: solr