我尝试使用DataImportHandler在云模式下使用Solr索引我的MySQL数据库,以下是使用_default配置集的配置。
的solr-7.3.0 \服务器\ solr的\ configsets \ _default \ CONF \ 数据-config.xml中
# define data source
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/expressg_dbkevinzeigler" user="root" password=""/>
<document>
<entity name="product"
pk="id_prd"
query="SELECT id_prd, name_prd, description_prd FROM products_prd">
<field column="id_prd" name="id"/>
<field column="name_prd" name="name"/>
</entity>
</document>
</dataConfig>
将以下内容添加到: 的solr-7.3.0 \服务器\ solr的\ configsets \ _default \ CONF \的 solrconfig.xml中
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-7.3.0.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-7.3.0-extras.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
将以下内容添加到: 的solr-7.3.0 \服务器\ solr的\ configsets \ _default \ CONF \的管理-schema.xml中
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="string" indexed="true" stored="true" multiValued="false" />
当我在我当前的集合中尝试使用Solr Admin中的DataImport时,它说:
“此索引的solrconfig.xml文件没有定义可操作的DataImportHandler!”
有人遇到同样的情况吗?
答案 0 :(得分:0)
请按照以下步骤创建我们自己的配置集,并使用这些配置为Solr Cloud模式创建一个集合。
1:从Solr安装目录中创建默认配置的副本。
sudo cp -R _default/ db_config
2:根据您的要求编辑solrconfig.xml, DIHconfigfile.xml and schema.xml(managed_schema)
个文件。
3:创建一个新配置的zip文件
(cd /usr/local/solr/server/solr/configsets/db_config/conf && zip -r - *) > db_config_set.zip
4:将此配置上传到ZooKeeper
curl -X POST --header "Content-Type:application/octet-stream" --data-binary @db_config_set.zip "http://your_host_ip:8983/solr/admin/configs?action=UPLOAD&name=db_config_set"
上传成功后,我们可以在Solr Admin网页中创建新集合时看到我们的新配置集。 在处理数据导入任务时,创建自定义配置集非常有用。
参考:https://lucene.apache.org/solr/guide/8_1/configsets-api.html