Solr 服务器启动时重新加载外部文件字段
我试图实现一个外部文件字段,以便更改Solr中的排名值 我在模式中定义了字段和字段类型,在“solrconfig.xml”中,在Solr 服务器启动时重新加载外部文件字段,solr,solrcloud,solrconfig,Solr,Solrcloud,Solrconfig,我试图实现一个外部文件字段,以便更改Solr中的排名值 我在模式中定义了字段和字段类型,在“solrconfig.xml”中,在标记下面,创建了外部文件并添加了重新加载侦听器,如中所述: 服务器启动后,我能够根据先前创建的字段对文档进行排序,但是,当我在服务器启动时更改值以及进行新的搜索查询时,我无法查看更新的排名列表(也无法查看更新的排名分数) 我还尝试按照中的建议添加重新加载请求处理程序,并尝试强制提交(),但它说: DirectUpdateHandler2 No uncommitted c
标记下面,创建了外部文件并添加了重新加载侦听器,如中所述:
服务器启动后,我能够根据先前创建的字段对文档进行排序,但是,当我在服务器启动时更改值以及进行新的搜索查询时,我无法查看更新的排名列表(也无法查看更新的排名分数)
我还尝试按照中的建议添加重新加载请求处理程序,并尝试强制提交(),但它说:
DirectUpdateHandler2 No uncommitted changes. Skipping IW.commit.
DirectUpdateHandler2 end_commit_flush
有什么建议吗?使用ExternalFileFields进行评分真的不再有用了,因为Solr和Lucene 然后,您可以直接从文档中使用这些字段进行评分,并且可以在不必更新整个文档的情况下更新这些字段。这样,您不必从外部重新加载任何内容,您的缓存可以由Solr自动管理 对于就地更新,字段必须满足三个条件(也就是说,也可以使用原子更新,但这需要将所有字段设置为已存储): 原子更新操作仅在以下情况下使用此方法执行: 要更新的字段满足以下三个条件:
- 是否为非索引(index=“false”)、非存储(stored=“false”)、单个 有值(multiValued=“false”)数字docValues(docValues=“true”) 田地
- _version_字段也是一个非索引、非存储的单值字段 docValues字段;以及
- 更新字段的复制目标(如果有)也是非索引的, 非存储的单值数值字段
调用重新加载请求处理程序时是否收到任何消息?你试过发行吗?排名值不能成为Solr文档本身的一部分,有什么原因吗?(因为我们现在有了带有docvalue的可更新字段)@MatsLindh当我调用重新加载请求时,上面提到的那两行出现了(“没有未限制的更改,…”)。堆芯重新加载解决了这个问题,但在性能和时间上都很昂贵。感谢您为我指出了就地可更新字段,我不知道该功能,它非常适合我的情况,解决了这个问题:)