Solr搭建教程

Solr搭建教程

环境:solr-6.6.6

1.解压安装运行
tar -zxf solr-6.6.6.tgz
mv solr-6.6.6 /opt
cd /opt/solr-6.6.6
./bin/solr start -p 8983

[^]: root用户输入命令时需要加 -force

2.打开浏览器查看是否启动成功
http://ip:8983/
3.创建core
./bin/solr create -c test
4.安装IK分词器
  • 下载 ikanalyzer-solr5 自行百度
    ik文件目录

  • 将目录下的2个jar包赋值到/opt/solr-6.6.6/server/solr-webapp/webapp/WEB-INF/lib下

  • 编辑/opt/solr-6.6.6/server/solr/test/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> 
  • 重启服务
./bin/solr restart
  • 打开控制台,选择Core->Analysis,输入中文,选择ik分词器,点击分析按钮,如下图所示
    ik分词测试
5.Solr配置Mysql数据源
  • 新建数据表并添加测试数据

    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `age` int(11) NULL DEFAULT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES (1, '张三', 12);
    INSERT INTO `user` VALUES (2, '李四', 15);
    INSERT INTO `user` VALUES (3, '王五', 14);
    INSERT INTO `user` VALUES (4, '丁六', 1);
    
    SET FOREIGN_KEY_CHECKS = 1;
    
  • 创建一个新Core

    ./bin/solr create -c mysql
    
  • 将mysql的驱动mysql-connector-java-5.1.48.jar和**/opt/solr-6.6.6/dist/目录下的solr-dataimporthandler-6.6.6.jarsolr-dataimporthandler-extras-6.6.6.jar拷贝到/opt/solr-6.6.6/server/solr-webapp/webapp/WEB-INF/lib**目录下

    cp dist/solr-dataimporthandler*.jar server/solr-webapp/webapp/WEB-INF/lib/
    
  • 修改/opt/solr-6.6.6/server/solr/mysql/conf/solrconfig.xml,在“<!-- SearchHandler”之前加入

    <requestHandler name="/dataimport" class="solr.DataImportHandler">
        <lst name="defaults">
          <str name="config">db-data-config.xml</str> <!--在当前目录新建该文件-->
        </lst>
    </requestHandler>
    <!-- SearchHandler
    

    在70~80行左右引入jar,否则会报不识别DataImportHandler的问题

    <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
    
  • 在config目录下新建db-data-config.xml,就是上面solrconfig.xml中配置的config文件

    <dataConfig>
        <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/springboot" user="root" password="root" />
        <document>
            <entity name="user" query="select * from user" deltaImportQuery="select * from user where id = '${dih.delta.id}'" >
    			<field column="id" name="id" />
                <field column="name" name="name" />
    			<field column="age" name="age" />      
            </entity>
        </document>
    </dataConfig>
    
    • query:查询数据库表符合记录数据
    • deltaQuery:增量索引查询主键ID 注意这个只能返回ID字段 ,这里未用到
    • deltaImportQuery:增量索引查询导入的数据
    • column:表的列名,name:solr中定义的索引名
  • 修改config目录下的managed-schema文件,在120行左右加入定义的Entity里的字段说明,name不可重复

    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <!-- doc values are enabled by default for primitive types such as long so we don't index the version field  -->
    <field name="_version_" type="long" indexed="false" stored="false"/>
    <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
    <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
    <!--新增以下field-->
    <field name="name" type="string" indexed="true" stored="true"/>
    <field name="age" type="string" indexed="true" stored="true"/>
    
  • 重启服务

    ./bin/solr restart
    
  • 打开管理页面,选择mysql->DataInport,点击Execute,为数据库中的数据在Solr中创建索引
    导入数据

  • 选择mysql->query,点击Execute Query,即可查询到数据库中的数据

查询数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值