Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 服务器启动时重新加载外部文件字段_Solr_Solrcloud_Solrconfig - Fatal编程技术网

Solr 服务器启动时重新加载外部文件字段

Solr 服务器启动时重新加载外部文件字段,solr,solrcloud,solrconfig,Solr,Solrcloud,Solrconfig,我试图实现一个外部文件字段,以便更改Solr中的排名值 我在模式中定义了字段和字段类型,在“solrconfig.xml”中,在标记下面,创建了外部文件并添加了重新加载侦听器,如中所述: 服务器启动后,我能够根据先前创建的字段对文档进行排序,但是,当我在服务器启动时更改值以及进行新的搜索查询时,我无法查看更新的排名列表(也无法查看更新的排名分数) 我还尝试按照中的建议添加重新加载请求处理程序,并尝试强制提交(),但它说: DirectUpdateHandler2 No uncommitted c

我试图实现一个外部文件字段,以便更改Solr中的排名值

我在模式中定义了字段和字段类型,在“solrconfig.xml”中,在
标记下面,创建了外部文件并添加了重新加载侦听器,如中所述:

服务器启动后,我能够根据先前创建的字段对文档进行排序,但是,当我在服务器启动时更改值以及进行新的搜索查询时,我无法查看更新的排名列表(也无法查看更新的排名分数)

我还尝试按照中的建议添加重新加载请求处理程序,并尝试强制提交(),但它说:

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当我调用重新加载请求时,上面提到的那两行出现了(“没有未限制的更改,…”)。堆芯重新加载解决了这个问题,但在性能和时间上都很昂贵。感谢您为我指出了就地可更新字段,我不知道该功能,它非常适合我的情况,解决了这个问题:)