Solr cloud - 重新加载elevate.xml

时间:2017-03-31 06:22:43

标签: solr solrcloud

我正在使用Apache Solr 6.5和Query Elevation Component(/ elevate endpoint)来支持查询中特定文档的提升。

我在

中使用了elevate.xml文件
<instanceDir>/conf/<config-file> 

目录。但是,在生产服务器上(Solr配置为带有zookepper的云以维护配置),不会加载elevate.xml中的更改。为了检查它是否有效,我只是查询提升的短语,结果我从以前版本的elevate.xml获得了提升文档。

当然,我在加载新版本的elevate.xml后重新启动所有Solr云实例,并且在Solr的管理UI文件部分(当然是特定核心部分)中可以看到更新的文件。

我用来测试结果的查询,以证明我没有使用标准/查询组件:

/elevate?df=name&fl=id,name,[elevated]&indent=on&q=heart&wt=json

我该怎么做才能告诉Solr新的elevate.xml已加载?在重新启动solr服务后,我的开发独立配置Solr(非云端)工作正常,文档由更新的elevate.xml文件提升。

2 个答案:

答案 0 :(得分:1)

你应该这样做:

  1. 按照here
  2. 的说明将elevate.xml文件上传到zookeeper
  3. 使用RELOAD集合api重新加载集合,无需重新启动Solr

答案 1 :(得分:1)

好的,我想我明白了。问题在于Solr预期提供了elevate.xml文件的目录。

文档说明(与6.5.0版本一样)

config-file


Path to the file that defines query elevation. 
This file must exist in     <instanceDir>/conf/<config-file> or <dataDir>/<config-file>.

在我的开发配置中,两种情况都是如此(文件是从conf或data目录中读取的)。但是在生产时(在具有外部zooKeepers的云环境中),文件是从核心(也称为集合)的根目录读取的,其中还存在solrconfig.xml和schema.xml。

可能它有一些解释,它只是数据目录本身,但由于我不知道如何检查instanceDir和dataDir变量的值是什么,文档对我来说是误导。

我希望它有助于其他Solr专家。