我参考了 益达的讲解进行了配置,想创建一个基于数据库数据导入的 core ,http://iamyida.iteye.com/blog/2210621 ,虽然我失败了,但他确实对我帮助非常大。
我的版本依然 5.4.0 这里讲一下为什么会出那个错。
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Error Instantiating requestHandler, solr.DataImportHandler failed to instantiate org.apache.solr.request.SolrRequestHandler。
打开solrconfig.xml配置文件,找到Lib节点,我发现了它, ,因为问题就是他引起的,
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
${solr.install.dir:../../../..}/dist/ 就是它了,为什么? 因为他是基础core的地址一路向上找,向上找了四级,它的目的是为了找到solr.5.4.0 这个文件夹根目录 ,可是如果你的core不是相对于solr的安装目录有这么多级就要减少../
solr.install.dir: 表示 core的根目录 。从这点开始排除吧。
如果以上还是不能解问题。就删除掉solr.5.4.0,再解压一次。这一次运行的命令是这样的:
./solr -e hid
# 这是为了创建一个以hid为模板的实例core,当打开solr的管理界面时,会出现多个core库。
其中有一个名为 db的,就是我所参照的模板了。
试着自己复制了一个,然后通过管理界面添加进去,再调整一个lib的指定路径 ,哟,可以了。
我没有参照益达给出的方式,因为我已经找到不 5.1.0 的版本了,最新的老的 5.x版本都是 5.2.0 。所以我看了官方的API找到了这个简单方法 ,有了它,何需再去那么麻烦的安装服务器呢。