我很难在PostgreSQL(主数据源)和Solr之间建立基本连接。我试图关注它上面有很多帖子。这是我所做的(在linux中),尝试使用数据导入处理程序修改dih示例到我的需要。
来自https://jdbc.postgresql.org/download.html我下载postgresql-9.4.1212.jre6.jar并将其放在solr-6.4.0 / dist。
我在lib包含区域的solr-6.4.0 / example / example-DIH / solr / solr / conf中编辑solrconfig.xml,如下所示:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="postgresql-.*\.jar" />
并在请求区域中如下:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">solr-data-config.xml</str>
</lst>
我也在solr-6.4.0 / example / example-DIH / solr / solr / conf中编辑solr-data-config.xml到以下内容:
<dataConfig>
<dataSource type="JdbcDataSource" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/mydatabase" user="postgres" password="pass" />
<document >
<entity name="user" query="SELECT first_name FROM main.'user'">
</entity>
</document>
</dataConfig>
注意我在帖子中发现混淆的数据库连接,但我相信我包含它是正确的,mydatabase是postgreSQL数据库的名称。然后我通过bin / solr -e dih运行Solr。这样可以在http://localhost:8983/solr
访问服务器但是,当我尝试通过http://localhost:8983/solr/#/collection1/dataimport//dataimport提取数据时,我收到了错误
Sorry, no dataimport-handler defined!
我的数据架构:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example-DIH-solr" version="1.6">
<types>
<fieldType name="string" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="first_name" type="string" indexed="true" stored="true"/>
<field name="_version_" type="string" indexed="true" stored="true"/>
</fields>
<uniqueKey>first_name</uniqueKey>
</schema>
感谢您提供的任何帮助。
答案 0 :(得分:1)
该消息是管理UI中的一个错误的结果,特定于6.4.0版本
https://issues.apache.org/jira/browse/SOLR-10035
该问题详细说明了如何修复管理界面。
请注意,这不会影响dataimport处理程序的实际操作,只会影响管理UI。 Solr的使用通常不是通过管理UI完成的。