我有一个Solr索引,里面有大约2.5M个项目,我正在尝试使用ExternalFileField来提高相关性。不幸的是,当我尝试这样做时,它非常慢,尽管它是一台强大的机器并且 Solr 有很多可用内存。
在外部文件中,我有以下内容:
747501=3.8294805903e-07
747500=3.8294805903e-07
1718770=4.03292174724e-07
1534562=3.8294805903e-07
1956010=3.8294805903e-07
747509=3.8294805903e-07
747508=3.8294805903e-07
1718772=3.8294805903e-07
1391385=3.8294805903e-07
2089652=3.8294805903e-07
1948271=3.8294805903e-07
108368=3.84404072186e-06
每一行都是一个文档 ID,它是相应的提升因子。
在我的查询中,我使用的是 edismax,并且我正在使用 boost 参数,将其设置为 pagerank。整个查询都在这里。
在我的架构中,我有:
<!-- External File Field Type-->
<fieldType name="pagerank"
keyField="id"
stored="false"
indexed="true"
omitNorms="false"
class="solr.ExternalFileField"
valType="float"/>
和
<field name="pagerank"
type="pagerank"
indexed="true"
stored="true"
omitNorms="false"/>
但表现只是,非常糟糕。我是否缺少设置或其他内容?
根据 javadoc
外部文件可以按键字段排序或取消排序,但它 如果不排序,速度会慢得多(未经测试)。
如我所见,您文件中的 id 未排序。你能对它进行分类并测试它是否有帮助吗?