Indexing “如何加载文件”;同义词.txt“;是否使用solr在远程服务器上显示?
这里文件“synonyms.txt”存在于当前目录中。如果该文件位于远程服务器而不是本地计算机上,如何加载该文件?不幸的是,您不能只键入URL,因为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请求将同义词放
同义词过滤器工厂的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