我一直在尝试在ApacheSolr中使用ExternalFileField进行外部评分。
我正在使用示例配置。基本上我想用他们的ID设置项目的分数。
我在schema.xml中设置了fieldType idRankFile和field idRank:
<fieldType name="idRankFile" keyField="id" defVal="0" stored="true" indexed="true" class="solr.ExternalFileField" valType="pfloat" />
<field name="idRank" type="idRankFile" indexed="true" stored="true" />
在/ solr / example / solr / data中创建了一个名为external_idRank的文件,其中包含以下内容:
F8V7067-APL-KIT = 1.0
IW-02 = 10.0
9885A004 = 100.0
SOLR1000 = 1000.0
(这为各种id分配idRank值)
现在我运行以下查询:
这应该基本上按照idRanks的顺序返回结果。但事实并非如此。
有什么想法吗?
答案 0 :(得分:2)
好吧,所以我遇到了同样的问题。这就是我所做的:
创建文件:
solr_home/PROJECT/multicore/core1/data/external_popularProducts.txt
该文件应包含如下值:
uniqueID_in_core=count
例:
873728721=19
842728342=20
更新schema.xml,在<types> </types>
下添加
<fieldType name="popularProductsFile" keyField="key" defVal="0" stored="true" indexed="true" class="solr.ExternalFileField" valType="float" />
此处,key
是solr core的primaryID的列名
在<fields></fields>
下添加此内容
<field name="popularProducts" type="popularProductsFile" indexed="true" stored="true" />
重新加载核心。我正在使用solr4.3,它有一个bug。当我尝试重新加载任何核心时,solrcloud节点会关闭。 SOLR-4805: SolrCloud - RELOAD on collections or cores leaves collection offline and unusable till restart 。所以,我不得不重启我的solrcloud节点。
查询:
http://SOLR_NODE:8983/solr/core1/select?q=ipad&sort=popularProducts desc
注意:强>
大多数关于ExternalFileField的博客都不完全准确。所以请参阅原始文档: