solr 安装
博客专区 > 茅茹 的博客 > 博客详情
solr 安装
茅茹 发表于1年前
solr 安装
  • 发表于 1年前
  • 阅读 11
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: solr 安装 mysql数据库建立索引

1.  下载 solr

 1.1 地址:http://archive.apache.org/dist/lucene/solr/ 找到你需要的版本

注: 本文以5.5.2 版本为例

1.2 安装jdk 1.7 +

1.3 安装 tomcat7 + 注:本文安装目录为 D:\tomcat-solr\tomcat-8

2  解压solr-5.5.2.zip 到任意文件夹(本文为  D:\solr-5.5.2 )

 

2.1  将 D:\solr-5.5.2\server\solr-webapp 文件夹 webapp将其拷贝到D:\tomcat-solr\tomcat-8\webapps 目录下面 并修改名称为solr

2.2  将D:\solr-5.5.2\server 文件夹下面 slor文件夹拷贝到  D:\tomcat-solr(是为了便于管理)

2.3  修改配置文件 打开文件 D:\tomcat-solr\tomcat-8\webapps\solr\WEB-INF\web.xml

将 <env-entry>  修改为下图图


<!-- People who want to hardcode their "Solr Home" directly into the

       WAR File can set the JNDI property here...

-->

    <env-entry>

       <env-entry-name>solr/home</env-entry-name>

       <env-entry-value>D:\tomcat-solr\solr</env-entry-value>

       <env-entry-type>java.lang.String</env-entry-type>

    </env-entry>

2.4 将D:\solr-5.5.2\server\lib\ext 目录下面所有的jar 拷贝到D:\tomcat-solr\tomcat-8\webapps\solr\WEB-INF\lib

2.5 将D:\solr-5.5.2\dist目录下面的solr-dataimporthandler-5.5.2.jar,solr-dataimporthandler-extras-5.5.2.jar 拷贝到 D:\tomcat-solr\tomcat-8\webapps\solr\WEB-INF\lib里面

2.6 将D:\solr-5.5.2\server\resources\ log4j.properties  拷贝到D:\tomcat-solr\tomcat-8\webapps\solr\WEB-INF\classes ( classes 没有可以新建一个)

3.0 启动tomcat  。

访问 http://localhost:8080/solr/admin.html#/

说明搭建成功

3.配置中文分词器  一个事jk分词器  另外一个事基于中科院的:smartcn

那么先来配置  smartcn  该中文分词器在solr 中已经包含此包

3.0 在D:\tomcat-solr\solr\目录下面建立文件夹ins  名称随意

在int目录下面建立 data, core文件夹

3.0.1 将 D:\solr-5.5.2\example\example-DIH\solr\solr目录下所有文件拷贝到D:\tomcat-solr\solr\int目录下

3.1 将D:\solr-5.5.2\contrib\analysis-extras\lucene-libs 目录下面

lucene-analyzers-smartcn-5.5.2.jar 复制到D:\tomcat-solr\tomcat-8\webapps\solr\WEB-INF\lib目录

3.2 打开D:\tomcat-solr\solr\ins\conf\managed-schema文件 增加

<field name="text_smart" type="text_smart" indexed="true" stored="true" multiValued="true"/>
<fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">
   <analyzer type="index">
      <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
      <filter class="solr.SmartChineseWordTokenFilterFactory"/>
   </analyzer>
   <analyzer type="query">
      <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>
      <filter class="solr.SmartChineseWordTokenFilterFactory"/>
   </analyzer>
</fieldType>

到此  smartcn 分词器已配置完成

 

接下来集成 ik分词器 此时启动tomcat 能在主页面中看见如下

 

添加core

 

好了 现在可以开始你的分词了 ,,,,,

接下来集成ik分词器因为为ik分词很久没有更新了 所有需要源码重新编译下可参照

https://github.com/jianghouwei/ik-analyzer-solr5

有教程 

编译好了之后将jar 直接拷贝到D:\tomcat-solr\tomcat-8\webapps\solr\WEB-INF\lib目录

然后再

打开D:\tomcat-solr\solr\ins\conf\managed-schema文件 增加

<fieldType name="text_ik" class="solr.TextField">  
     <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
     <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
</fieldType>
<field name="text_ik" type="text_ik" indexed="true" stored="true" multiValued="false"/> 

到这里ik基本已经配置成功可以去主页试试

如果不行将ik-analyzer-solr5/src/main/resources/目录下

 stopword.dic  IKAnalyzer.cfg.xml 拷贝到 D:\tomcat-solr\solr\ins\conf目录下

至此两个常用的中文分词器已经配置完毕,如果增加其他的分词也可以采用上述分词器

4: 配置mysql数据库索引

建立mysql表

CREATE TABLE `NewTable` (
	`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
	`area_id` VARCHAR (50) CHARACTER
SET utf8 COLLATE utf8_bin NOT NULL COMMENT '城市id',
 `name_en` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市英文名',
 `name_cn` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市中文名',
 `district_en` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市所在市英文名',
 `district_cn` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市所在市中文名',
 `province_en` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市所在省英文名',
 `province_cn` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市所在省中文名',
 `nation_en` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市所在国家英文名',
 `nation_cn` VARCHAR (100) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '城市所在国家中文名',
 `memo` VARCHAR (200) CHARACTER
SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '备忘录 预留字段',
 PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8 COLLATE = utf8_bin COMMENT = '中国天气网城市id列表' AUTO_INCREMENT = 2566 ROW_FORMAT = COMPACT;

在D:\tomcat-solr\solr\ins\conf

solrconfig.xml

<requestHandler name="/dataimport" class="solr.DataImportHandler">
  <lst name="defaults">
     <str name="config">solr-data-config.xml</str>
  </lst>
</requestHandler>

solr-data-config.xml增加如下配置

打开solr-data-config.xml

增加mysql配置

<!--dataConfig>
  <document>
    <entity name="sep" processor="SolrEntityProcessor"
            url="http://127.0.0.1:8983/solr/db "
            query="*:*"
            fl="*,orig_version_l:_version_,ignored_price_c:price_c"/>
  </document>
</dataConfig -->

<dataConfig>  
  <dataSource type="JdbcDataSource" 
        driver="com.mysql.jdbc.Driver" 
  	url="jdbc:mysql://139.198.9.50:3306/weather" 
        user="root" password="151MysqlPass"/>
    <document>
        <entity name="city" pk="id" query="select id,area_id , name_en , name_cn ,district_en,district_cn,province_en,province_cn from  business_city">
            <field column="id" name="id" />
            <field column="area_id" name="area_id" />
            <field column="name_en" name="name_en" />
            <field column="name_cn" name="name_cn" />
            <field column="district_en" name="district_en"/> 
	    <field column="district_cn" name="district_cn"/> 
	    <field column="province_en" name="province_en"/> 
	    <field column="province_cn" name="province_cn"/> 
        </entity>
    </document>
</dataConfig>

打开 managed-schema增加如下配置

<!-- 字段维护  城市字段 -->
<field name="area_id" type="string" indexed="false" stored="true" multiValued="false"/> 
<field name="name_en" type="text_ik" indexed="false" stored="true" multiValued="false"/> 
<field name="name_cn" type="text_ik" indexed="true" stored="true" multiValued="false"/> 
<field name="district_en" type="text_ik" indexed="false" stored="true" multiValued="false"/> 
<field name="district_cn" type="text_ik" indexed="true" stored="true" multiValued="false"/> 
<field name="province_en" type="text_ik" indexed="false" stored="true" multiValued="false"/> 
<field name="province_cn" type="text_ik" indexed="true" stored="true" multiValued="false"/> 
<field name="nation_en" type="text_ik" indexed="false" stored="true" multiValued="false"/> 
<field name="nation_cn" type="text_ik" indexed="true" stored="true" multiValued="false"/> 


 

保存文件

现在操作

 

 

索引生成成功

 

可查询

  • 点赞
  • 收藏
  • 分享
粉丝 0
博文 7
码字总数 16264