知识点
相关文章
更多最近更新
更多solr学习之(五)_solr4.2.0中从数据库中导入数据到索引
2019-03-27 00:22|来源: 网路
公司绝大部分的数据是存储在数据库中。假如有一天数据库已经很大了,公司决定将数据导入到索引中,以改善数据检索的效果,该怎么办呢?
Solr已经为我们准备好了这样的工具,那就是Data Import Handler。学习了这几天的solr,感觉solr的核心就是它的两个配置文件:schema.xml和solrconfig.xml。
还是需要提前说明一下,本文的操作都是:win7+tomcat6.0+solr
第一步:建立数据库表,并插入测试数据。
在test数据库中建立一张users表,表的结构如下:
往数据库表中插入一些数据:
第二步:准备相关的jar包。
由于在2013-4-18_solr学习之(三)_访问solr4.2的browse页面中我已经把相关的jar包导入了,这里只需要把mysql-connector-java-
D:\xh_solr\tomcat-solr\solr\bin\contrib\dataimporthandler\lib文件夹下面。然后在solrconfig.xml中指明该jar包的位置即可。在solrconfig.xml中的相关配置如下:
<lib dir="D:/xh_solr/tomcat-solr/solr/bin/dist/" regex="solr-dataimporthandler-\d.*\.jar" />
<lib dir="D:/xh_solr/tomcat-solr/solr/bin/contrib/dataimporthandler/lib/" regex=".*\.jar" />
第三步:配置相应的requestHandler。
依然是在solrconfig.xml中加入如下的配置:
- <!-- the dataimport requestHandler -->
- <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.
- DataImportHandler">
- <lst name="defaults">
- <str name="config">db-data-config.xml</str>
- </lst>
- </requestHandler>
第四步:配置数据库映射文件,也就是第三步中的:db-data-config.xml文件。
在与solrconfig.xml相同的位置,也就是D:\xh_solr\tomcat-solr\solr\collection1\conf目录下,创建db-data-config.xml文件,然后加入如下的配置:
- <dataConfig>
- <dataSource driver="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/test" user="root" password="admin"/>
- <document>
- <entity name="user" query="SELECT user_id, user_name from
- users">
- <field column="user_id" name="id" />
- <field column="user_name" name="name" />
- </entity>
- </document>
- </dataConfig>
第五步:导入数据:启动tomcat,打开浏览器,并输入:
http://localhost:8983/solr/dataimport?command=full-import
如果没有问题的话,返回内容如下:
- <response>
- <lst name="responseHeader">
- <int name="status">0</int>
- <int name="QTime">53</int>
- </lst>
- <lst name="initArgs">
- <lst name="defaults">
- <str name="config">db-data-config.xml</str>
- </lst>
- </lst>
- <str name="command">full-import</str>
- <str name="status">idle</str>
- <str name="importResponse"/>
- <lst name="statusMessages">
- <str name="Total Requests made to DataSource">1</str>
- <str name="Total Rows Fetched">5</str>
- <str name="Total Documents Skipped">0</str>
- <str name="Full Dump Started">2013-04-21 19:42:44</str>
- <str name="">
- Indexing completed. Added/Updated: 5 documents. Deleted 0 documents.
- </str>
- <str name="Committed">2013-04-21 19:42:45</str>
- <str name="Total Documents Processed">5</str>
- <str name="Time taken">0:0:1.420</str>
- </lst>
- <str name="WARNING">
- This response format is experimental. It is likely to change in the future.
- </str>
- </response>
第六步:验证我们的索引,打开浏览器,输入:http://localhost:8983/solr/#/collection1/query或者是http://localhost:8983/solr/select/?q=text:jim
如果没有错误的话,输入http://localhost:8983/solr/select/?q=text:jim返回的内容如下:
- <response>
- <lst name="responseHeader">
- <int name="status">0</int>
- <int name="QTime">1</int>
- <lst name="params">
- <str name="q">text:jim</str>
- </lst>
- </lst>
- <result name="response" numFound="1" start="0">
- <doc>
- <str name="name">Jim</str>
- <str name="id">5</str>
- <long name="_version_">1432925833619570689</long>
- </doc>
- </result>
- </response>
如果我们比对数据库,发现在数据库中确定有这样一条数据:
本文出自 “每天进步一点点” 博客,请务必保留此出处http://sbp810050504.blog.51cto.com/2799422/1182942
转自:http://sbp810050504.blog.51cto.com/2799422/1182942
相关问答
更多-
有solr为什么还要使用数据库[2021-09-04]
QQ比微信功能多,都是用来聊天,微信有的功能QQ基本都有,而且功能更多,为什么还是有那么多人用微信呢 -
solr怎么把数据库数据导入索引库[2022-02-09]
在solr与tomcat整合文章中,我用的索引库是mycore,现在就以这个为例。 首先要准备jar包:solr-dataimporthandler-4.8.1.jar、solr-dataimporthandler-extras-4.8.1.jar和mysql-connector-java-5.0.7-bin.jar这三个包到solr的tomcat的webapps\solr\WEB-INF\lib下 在这个文件夹的conf下配置两个文件,添加一个文件。先配置solrconfig.xml。 在该文件下添加一个 ... -
有solr为什么还要使用数据库[2022-07-17]
solr不安全,没事务 ,没有表关系 -
solr索引导入数据的问题[2023-05-24]
在solr与tomcat整合文章中,我用的索引库是mycore,现在就以这个为例。 首先要准备jar包:solr-dataimporthandler-4.8.1.jar、solr-dataimporthandler-extras-4.8.1.jar和mysql-connector-java-5.0.7-bin.jar这三个包到solr的tomcat的webapps\solr\WEB-INF\lib下 在这个文件夹的conf下配置两个文件,添加一个文件。先配置solrconfig.xml。 在该文件下添加一个 ... -
将Solr用作数据库是非常合理的,具体取决于您的应用。 事实上,这几乎是guardian.co.uk正在做的 。 这绝对不是坏习惯本身。 如果你使用错误的方法,就像任何级别的任何其他工具,甚至是GOTO,都是坏的。 当你说“一个XML表示...”时,我假设你正在谈论有多个存储的Solr字段,并使用Solr的XML格式检索它,而不只是一个大的XML内容字段(这将是一个非常可怕的使用Solr) 。 Solr使用XML作为默认响应格式的事实在很大程度上是无关紧要的,您也可以使用二进制协议 ,因此与传统的关系数据库 ...
-
DIH没有任何问题。 确保您的数据库连接字符串有效,并且您的数据库已启动并正在运行。 As Eric Wang pointed out I was using wrong port number and after that also I was getting SSL certificate error the final url string that worked for me is: url="jdbc:mysql://127.0.0.1:3306/indcat?useSSL=false&"
-
在Apache Solr中索引MySQL数据库中的内容时出错(Error when indexing content from MySQL database in Apache Solr)[2022-12-12]
您的索引由schema.xml文件定义。 您希望索引的所有字段都会出现。 但是,您尝试使用名为job_id的字段添加Solr文档。 此字段不在您的模式中。 添加此字段或将其从文档中删除。 Your index is defined by a schema.xml file. There all the fields you like to index appear. However, you are trying to add a Solr document with a field named job_i ... -
从SOLR数据库中删除碎片(Remove Shards from SOLR Database)[2023-12-13]
我最终使用了Lucene Merge Index工具。 SOLR方法对我不起作用(钝误)。 I ended up using the Lucene Merge Index tool. The SOLR approaches did not work for me (obtuse errors). -
如何在solr 6.2.1中导入和索引数据库中的数据(Solr的新增功能)(how to import and index data from database in solr 6.2.1(New to solr))[2023-09-06]
从Solr管理面板看一下你的日志,如果有关于索引过程的任何提示,在url / solr /#/ ~logs中如果你在尝试导入文档时看到任何错误,点击日志行就会给出您有关错误的其他信息。 既然你提到了Solr Admin,我想你正在使用数据导入处理程序。 这是一个非常(非常!)的基本配置,假设你是从mysql索引:您的data-config需要看起来更像这样。 您没有指定mysql主机,用户或密码。...