solr4.40导入mysql数据库数据建立索引
2014-10-09 10:55
525 查看
原文url:/article/1494401.html
首先必须安装好Solr4.40和MySql数据库
Solr4.40安装到widows下请参考我的另一篇文章/article/1494402.html
1.打开solrHome下例如我本机上的E:\solrTest\solrHome\core0\conf\solrconfig.xml(注意个人配置位置不一样,配置文件所在位置就不一样)
加入以下内容:
[html]
view plaincopyprint?
<requestHandler
name="/dataimport"
class = "org.apache.solr.handler.dataimport.DataImportHandler">
<lst
name="defaults">
<str
name="config">db-data-config.xml</str>
</lst>
</requestHandler>
2然后再solrconfig.xml同个目录下创建db-data-config.xml文件
填入内容如下:
[html]
view plaincopyprint?
<dataConfig>
<!--数据库配置信息-->
<dataSource
type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test"
user="root"
password=""/>
<!--查询语句并重命名-->
<document>
<entity
name="user"
query="select * from user">
<field
column="id"
name="id"/>
<field
column="name"
name="name"/>
<field
column="age"
name="age"/>
</entity>
</document>
</dataConfig>
注意:必须引入在solr\WEB-INF\lib下必然引入solr-dataimporthandler-4.4.0.jar包 ,此包存在于solr安装包下solr-4.4.0\dist目录下
安装Mysql数据库创建user表这些我就不说了,你们应该都会,不会可以百度,还要记得引入mysql-connector-java-5.1.18-bin.jar
3solrHome下面默认是没有引入分词器,要根据自己需求引入所需要分词器,并且我们要配置我们要查询的域
,要跟db-data-config.xml配置的相对应,我使用的是NGramTokenizer分词器
,你们可以根据自己需求换成别的分词器
在配置文件schema.xml下的<types></types>之间加入以下内容:
[html]
view plaincopyprint?
<fieldType
name="text"
class="solr.TextField"
positionIncrementGap="100">
<analyzer
type="index">
<tokenizer
class="solr.NGramTokenizerFactory"
/>
<filter
class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<!-- in this example, we will only use synonyms at query time
<filter
class="solr.SynonymFilterFactory"
synonyms="index_synonyms.txt"
ignoreCase="true"
expand="false"/> -->
<filter
class="solr.LowerCaseFilterFactory"
/>
</analyzer>
<analyzer
type="query">
<tokenizer
class="solr.NGramTokenizerFactory"
/>
<filter
class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter
class="solr.SynonymFilterFactory"
synonyms="synonyms.txt"
ignoreCase="true"
expand="true"
/>
<filter
class="solr.LowerCaseFilterFactory"
/>
</analyzer>
</fieldType>
还要在<fields></fields>下如下:(text对于上面text:会被分词器处理)
[html]
view plaincopyprint?
<fields>
<!-- general -->
<field
name="id"
type="long"
indexed="true"
stored="true"
multiValued="false"
required="true"/>
<field
name="name"
type="text"
indexed="true"
stored="true"
multiValued="false"
/>
<field
name="age"
type="long"
indexed="true"
stored="true"
multiValued="false"
/>
<field
name="core0"
type="string"
indexed="true"
stored="true"
multiValued="false"
/>
<field
name="_version_"
type="long"
indexed="true"
stored="true"/>
</fields>
4在同目录下创建stopwords.txt和synonyms.txt,里面可以填入自己定义的停词和近义词
我的配置文件大概是这样
怕你们弄错了展示下schema.xml如下:
5启动tocmat运行,在浏览器输入:http://127.0.0.1:8080/solr
以下是点击查看:1数据库引入配置文件2查询情况3分词情况
首先必须安装好Solr4.40和MySql数据库
Solr4.40安装到widows下请参考我的另一篇文章/article/1494402.html
1.打开solrHome下例如我本机上的E:\solrTest\solrHome\core0\conf\solrconfig.xml(注意个人配置位置不一样,配置文件所在位置就不一样)
加入以下内容:
[html]
view plaincopyprint?
<requestHandler
name="/dataimport"
class = "org.apache.solr.handler.dataimport.DataImportHandler">
<lst
name="defaults">
<str
name="config">db-data-config.xml</str>
</lst>
</requestHandler>
<requestHandler name="/dataimport" class = "org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> </lst> </requestHandler>
2然后再solrconfig.xml同个目录下创建db-data-config.xml文件
填入内容如下:
[html]
view plaincopyprint?
<dataConfig>
<!--数据库配置信息-->
<dataSource
type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test"
user="root"
password=""/>
<!--查询语句并重命名-->
<document>
<entity
name="user"
query="select * from user">
<field
column="id"
name="id"/>
<field
column="name"
name="name"/>
<field
column="age"
name="age"/>
</entity>
</document>
</dataConfig>
<dataConfig> <!--数据库配置信息--> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password=""/> <!--查询语句并重命名--> <document> <entity name="user" query="select * from user"> <field column="id" name="id"/> <field column="name" name="name"/> <field column="age" name="age"/> </entity> </document> </dataConfig>
注意:必须引入在solr\WEB-INF\lib下必然引入solr-dataimporthandler-4.4.0.jar包 ,此包存在于solr安装包下solr-4.4.0\dist目录下
安装Mysql数据库创建user表这些我就不说了,你们应该都会,不会可以百度,还要记得引入mysql-connector-java-5.1.18-bin.jar
3solrHome下面默认是没有引入分词器,要根据自己需求引入所需要分词器,并且我们要配置我们要查询的域
,要跟db-data-config.xml配置的相对应,我使用的是NGramTokenizer分词器
,你们可以根据自己需求换成别的分词器
在配置文件schema.xml下的<types></types>之间加入以下内容:
[html]
view plaincopyprint?
<fieldType
name="text"
class="solr.TextField"
positionIncrementGap="100">
<analyzer
type="index">
<tokenizer
class="solr.NGramTokenizerFactory"
/>
<filter
class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<!-- in this example, we will only use synonyms at query time
<filter
class="solr.SynonymFilterFactory"
synonyms="index_synonyms.txt"
ignoreCase="true"
expand="false"/> -->
<filter
class="solr.LowerCaseFilterFactory"
/>
</analyzer>
<analyzer
type="query">
<tokenizer
class="solr.NGramTokenizerFactory"
/>
<filter
class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter
class="solr.SynonymFilterFactory"
synonyms="synonyms.txt"
ignoreCase="true"
expand="true"
/>
<filter
class="solr.LowerCaseFilterFactory"
/>
</analyzer>
</fieldType>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.NGramTokenizerFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.NGramTokenizerFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> </fieldType>
还要在<fields></fields>下如下:(text对于上面text:会被分词器处理)
[html]
view plaincopyprint?
<fields>
<!-- general -->
<field
name="id"
type="long"
indexed="true"
stored="true"
multiValued="false"
required="true"/>
<field
name="name"
type="text"
indexed="true"
stored="true"
multiValued="false"
/>
<field
name="age"
type="long"
indexed="true"
stored="true"
multiValued="false"
/>
<field
name="core0"
type="string"
indexed="true"
stored="true"
multiValued="false"
/>
<field
name="_version_"
type="long"
indexed="true"
stored="true"/>
</fields>
<fields> <!-- general --> <field name="id" type="long" indexed="true" stored="true" multiValued="false" required="true"/> <field name="name" type="text" indexed="true" stored="true" multiValued="false" /> <field name="age" type="long" indexed="true" stored="true" multiValued="false" /> <field name="core0" type="string" indexed="true" stored="true" multiValued="false" /> <field name="_version_" type="long" indexed="true" stored="true"/> </fields>
4在同目录下创建stopwords.txt和synonyms.txt,里面可以填入自己定义的停词和近义词
我的配置文件大概是这样
怕你们弄错了展示下schema.xml如下:
5启动tocmat运行,在浏览器输入:http://127.0.0.1:8080/solr
以下是点击查看:1数据库引入配置文件2查询情况3分词情况
相关文章推荐
- solr4.40导入mysql数据库数据建立索引
- solr5.5之从数据库中导入数据并建立索引
- 2.myql数据导入到solr,并建立solr索引(学习笔记)
- solr 4.8+mysql数据库数据导入 + mmseg4j中文全文索引 配置笔记
- solr5.3+tomcat-7.0.65 solr从mysql数据库导入数据并创建索引
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
- 从HBase读取数据提交到Solr建立索引
- (二) solr 索引数据导入:xml格式
- 【初学菜鸟作-MySQL数据库的索引类型及数据的导入导出】*首页贴^_^*
- solr直接索引mysql数据库中的数据(solr实战二)
- Solr学习(四)DIH全量导入并索引数据
- (搜索引擎之solr) sorl运行环境的搭建及从mysql中导入数据创建索引
- 2014-1-3_solr学习之(十一)solr3.5的DIH的增量索引和数据的条件导入
- solr4 mysql数据库导入数据
- (五) solr 索引数据导入:csv格式
- solr学习之(五)_solr4.2.0中从数据库中导入数据到索引
- solr导入mysql数据建全量索引
- Lucene3.4实现从mysql数据库中导出数据,建立索引
- solr4.10.1 tomcat jdk1.7 配置Mysql数据库连接导入数据
- (二) solr 索引数据导入:xml格式