前言
下面的步骤开起来比较多,其实总结下来不外乎以下几点
- 给solr配置mysql数据库驱动(步骤2.1)
- 告诉solr,要从一个地方导入数据。(步骤2.2)
- 告诉solr,mysql数据库的 地址,用户名,密码,数据库名等等。(步骤2.3)
- 告诉solr,要为mysql数据库建立那些索引域。(步骤2.4)
- 从mysql数据库中导入数据。(步骤2.6)
后面添加中文分词部分
- 为solr新建一个可分词的数据类型 “text_cn”
- 导入IKAnalyzer分词包
- 将步骤2.4中的数据类型改为“text_cn”。
一、 试运行solr
cmd 进入solr下的example目录:cd /d apache-solr-3.6.2\example
执行java命令:java -jar start.jar
测试是否成功运行solr:访问URLhttp://localhost:8983/solr/admin/
二、 配置Solr索引MySQL数据库表
准备工作
在本地的MySQL数据库中执行:
SQL语句
|
DROP TABLE IF EXISTS `documents`;
CREATE TABLE `documents` (
`id` int(11) NOT NULL auto_increment,
`date_added` datetime NOT NULL,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of documents
-- ----------------------------
INSERT INTO `documents` VALUES ('1', '2012-01-11 23:15:59', 'world', 'test1');
INSERT INTO `documents` VALUES ('2', '2012-01-11 23:16:30', 'hello', 'test');
INSERT INTO `documents` VALUES ('3', now(), 'hello12', 'test');
INSERT INTO `documents` VALUES ('4', now(), ‘我们’, 'test');
|
2.1.复制mysql-connector-java-5.1.25-bin.jar(去网上下载)文件到目录apache-solr-3.6.2\example\lib。它是mysql的驱动。
2.2.配置apache-solr-3.6.2\example\solr\conf\solrconfig.xml。在文件中加入:
apache-solr-3.6.2\example\solr\conf\solrconfig.xml插入
|
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
|
在<lib dir="../../dist/" regex="apache-solr-cell-\d.*\.jar" />前面加入
|
<lib dir="../../dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
|
2.3.在apache-solr-3.6.2\example\solr\conf\目录下创建data-config.xml文件,其内容如下。其目的是指定了MySQL数据库的地址、用户名、密码和建立索引的数据表。
apache-solr-3.6.2\example\solr\conf\data-config.xml
|
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/italk " user="username" password="password"/>
<document name="documents1" >
<entity name="documents"
query="SELECT id, content, date_added, title FROM documents" > <field column="id" name="id" /> <field column="content" name="content" /> <field column="title" name="hashcode" /> <field column="date_added" name="updatetime" /> </entity> </document> </dataConfig>
|
2.4.在solr中为数据库表字段建立域,编辑apache-solr-3.6.2\example\solr\conf\schema.xml。
²删除<fields></fields>节点间的所有内容
²删除 <uniqueKey>id</uniqueKey>和 </schema>之间所有内容
apache-solr-3.6.2\example\solr\conf\schema.xml:在<fields></fields>节点间插入
|
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="title" type="text_general" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true"/>
<field name="content" type="text_general" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true"/>
<field name="date_added" type="date" indexed="false" stored="true"/>
|
|
2.5.重新执行java -jar start.jar
2.6.执行所用数据库命令:http://localhost:8983/solr/dataimport?command=full-import
2.7.再次访问:http://localhost:8983/solr/admin/,
Query string是默认的 *:*。意思是列出所有数据来。
点击“search”按钮,查看索引的全部数据。
三、 加入中文分词工具IKAnalyzer
为solr分词工具设为IKAnalyzer,IKAnalyzer下载地址:http://code.google.com/p/ik-analyzer/downloads/list
3.1.编辑apache-solr-3.6.2\example\solr\conf\schema.xml,添加自定义的中文类型text_cn,并配置其分词器。
apache-solr-3.6.2\example\solr\conf\schema.xml文件的<types></types>节点间插入
|
<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory"
isMaxWordLength="false"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0"
splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory"
isMaxWordLength="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0"
splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
|
3.2.添加IKAnalyzer分词工具包IKAnalyzer2012_u6.jar到目录apache-solr-3.6.2\example\solr\lib。
3.3.修改schema.xml文件中的content和 title域的数据类型。从”text_general”改为”text_cn”
3.4 测试分词工具,重新运行solr,进入:http://localhost:8983/solr/admin/analysis.jsp
如下配置,测试分词是否成功。
参考:http://blog.csdn.net/fover717/article/details/7551867(向其致敬)
分享到:
相关推荐
solr同步数据库需要jar包,多个solr同步数据库数据的jar包。压缩文件里面有说明
apache-solr-3.6.2.zipapache-solr-3.6.2.zipapache-solr-3.6.2.zipapache-solr-3.6.2.zipapache-solr-3.6.2.zipapache-solr-3.6.2.zipapache-solr-3.6.2.zip
NULL 博文链接:https://iamyida.iteye.com/blog/2215358
利用solr搭建MYSQL集成环境,实现MYSQL数据库索引的添加和修改。
solr7.4数据库导入,使用mysql数据库,内含solr7.4导入数据库Demo+mysql库表,外加使用IK分词器。
图解Solr6.6.0安装与MySQL配置(全量、增量更新)
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的...
图解Solr5.3.1与MySQL配置【原创】
NULL 博文链接:https://zihai367.iteye.com/blog/2204173
Solr3.6用DIH组件进行MySQL数据库全文索引部署包 完整的工程部署包 apache-solr-3.6.0.xml 放入apache-tomcat-7.0.27\conf\Catalina\localhost
solr创建索引并查询,希望能够帮助有需要的人。。。
Solr数据库插入(全量和增量)索引,全量一般用于第一次创建索引情况,批量一般更新数据部分创建索引。
Solr3.6用DIH组件进行MySQL数据库全文索引[归纳].pdf
Solr3.6用DIH组件进行MySQL数据库全文索引[参照].pdf
solr初学者很受用的!讲解了solr怎么创建索引的及其原理,以及查询
主要介绍了macOS安装Solr并索引MySQL的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
亲测solr7.7.2可用,并且在原有的无需验证的基础上增加了带账号密码验证的功能,所以有两个jar包,网友可根据自己的需要下载。账号密码验证的格式为user_pwd=user:password
系统开发环境:Eclipse 开发语言:Java ...说明:一个基于Solr的搜索引擎,由Spring+SpringMVC框架搭建,通过Solr服务器对MySql数据库表进行索引和检索,数据库中数据爬取自于上述三个网站的部分内容,有待优化。
NULL 博文链接:https://fengqingyuntan.iteye.com/blog/2254145