Indexing “如何加载文件”;同义词.txt“;是否使用solr在远程服务器上显示?

Indexing “如何加载文件”;同义词.txt“;是否使用solr在远程服务器上显示?,indexing,solr,solrj,solr4,query-analyzer,Indexing,Solr,Solrj,Solr4,Query Analyzer,这里文件“synonyms.txt”存在于当前目录中。如果该文件位于远程服务器而不是本地计算机上,如何加载该文件?不幸的是,您不能只键入URL,因为同义词过滤器工厂的ResourceLoader使用FilesystemResourceLoader 因此,您仍然可以将Solr指向任何看起来和行为类似于文件的内容,例如NFS装载的目录,甚至是本地同步的Dropbox文件夹。您无法从远程加载资源。相反,您可以使用ManagedSynnonymFilterFactory http post请求将同义词放

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

不幸的是,您不能只键入URL,因为
同义词过滤器工厂的
ResourceLoader
使用
FilesystemResourceLoader


因此,您仍然可以将Solr指向任何看起来和行为类似于文件的内容,例如NFS装载的目录,甚至是本地同步的Dropbox文件夹。

您无法从远程加载资源。相反,您可以使用ManagedSynnonymFilterFactory http post请求将同义词放入solr服务器

Solr 4.8.0中引入了此功能

如何使用:

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

<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>
在这里,将solr_ip和collection_名称更改为您的。我把单词的同义词改成了“生气,沮丧”

您可以通过get请求检查同义词

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

更多信息:

我相信ManagedResources是在Solr 4之后的Solr版本中引入的。请记住。谢谢@Alexanderrafalovitch,答案编辑:)
curl -X PUT -H 'Content-type:application/json' --data-binary '{"mad":["angry","upset"]}' "http://solr_ip:8983/solr/collection_name/schema/analysis/synonyms/english"
http://solr_ip:8983/solr/collection_name/schema/analysis/synonyms/english