如何加载文件" synonyms.txt"使用solr存在于远程服务器上?

时间:2017-02-20 10:24:11

标签: indexing solr solrj solr4 query-analyzer

<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>

这里是文件&#34; synonyms.txt&#34;存在于当前目录中。如果该文件的位置在远程服务器上而不在本地计算机上,如何加载该文件?

2 个答案:

答案 0 :(得分:0)

很遗憾,您无法输入网址,因为ResourceLoader的{​​{1}}使用SynonymFilterFactory

如上所述,您仍然可以将Solr指向任何看起来和行为类似文件的东西,例如: NFS挂载的目录,甚至是本地同步的Dropbox文件夹。

答案 1 :(得分:0)

您无法从远程加载资源。相反,您可以使用ManagedSynonymFilterFactory

将http发布请求放入您的solr服务器

这个功能在Solr 4.8.0中引入

如何使用:

首先,您必须声明您的过滤器,如下所示

<filter class="solr.ManagedSynonymFilterFactory" managed="english"/>

您可以使用以下卷曲请求将同义词发布到solr:

curl -X PUT -H 'Content-type:application/json' --data-binary '{"mad":["angry","upset"]}' "http://solr_ip:8983/solr/collection_name/schema/analysis/synonyms/english"

此处更改solr_ip和collection_name。我正在说疯狂的单词同义词很生气,不高兴

您可以通过获取请求检查您的同义词。

http://solr_ip:8983/solr/collection_name/schema/analysis/synonyms/english

了解更多信息:https://cwiki.apache.org/confluence/display/solr/Managed+Resources