• Apache Solr学习 第三篇 core的创建


    一、配置修改

             虽然solr启动,但是并没有core,我们并不能进行数据操作,core类似于关系数据库中的表,创建core之前, 通常我们对solr的使用都是,都是将关系型数据库的内容导入到solr中进行搜索服务

       首先我们在本地的MySQL数据库中建立一个solr数据库,并且在数据库下建表goods。

    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for goods
    -- ----------------------------
    DROP TABLE IF EXISTS `goods`;
    CREATE TABLE `goods`  (
      `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      `goodsname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `price` float(10, 2) NULL DEFAULT NULL,
      `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    -- ----------------------------
    -- Records of goods
    -- ----------------------------
    INSERT INTO `goods` VALUES ('1', '三星手机', 3000.00, '会爆炸吧');
    INSERT INTO `goods` VALUES ('2', '苹果手机', 6999.00, '装X神器');
    INSERT INTO `goods` VALUES ('3', '小米手机', 1400.00, '国民手机');
    
    SET FOREIGN_KEY_CHECKS = 1;

          以下配置以jetty启动方式为例,基本和tomcat启动方式一样。

          1. jar包

             将之前准备的mysql驱动包,中文分词器jar包,solr-6.6.6dist目录下的solr-dataimporthandler-6.6.6.jar,solr-dataimporthandler-extras-6.6.6.jar包拷贝到F:solrsolr-6.6.6serversolr-webappwebappWEB-INFlib下

          2. 配置

              在solr-6.6.6serversolr文件夹下创建file_core文件夹,将solr-6.6.6serversolrconfigsetssample_techproducts_configs瞎咋conf文件夹全部复制到file_core下。

             进入到solr-6.6.6serversolrfile_coreconf下,创建data-config.xml,内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <dataConfig>
        <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1/solr"
        user="root" password="www1928..com" batchSize="-1"/>
        <document name="goods">
            <entity name="goods" pk="id" query="select id, goodsname, price, description from goods">
                <field column="id" name="id" />
                <field column="goodsname" name="goodsname" />
                <field column="price" name="price" />
                <field column="description" name="description" />
            </entity>
        </document>
    </dataConfig>

           打开solr-6.6.6serversolrfile_coreconfsolrconfig.xml文件,做以下配置

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

          打开solr-6.6.6serversolrfile_coreconfmanaged-schema文件配置域,将data-config.xml文件中配置的字段都做如下配置

       <field name="goodsname" type="text_ik" indexed="true" stored="true"/>
       <field name="price" type="float" indexed="true" stored="true"/>
       <field name="description" type="text_ik" indexed="true" stored="true"/>

          找到 <uniqueKey></uniqueKey>位置配置

       <uniqueKey>id</uniqueKey>
       <field name="id" type="long" multiValued="false" indexed="true" required="true" stored="true" /> 

        配置中文分词器类型

     <fieldType name="text_ik" class="solr.TextField">
           <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
     </fieldType>

    二、数据导入

        做好以上配置以后,启动solr,打开后台管理页面

       

    添加goods_core,新建成功以后,选择goods_core,点击dataimport即可导入数据

    点击query即可查询数据

  • 相关阅读:
    Linux使用locate命令定位文件
    【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的详细实现
    数据结构—单链表(类C语言描写叙述)
    怎样訪问pcie整个4k的配置空间
    [Swift]LeetCode988. 从叶结点开始的最小字符串 | Smallest String Starting From Leaf
    [Swift]LeetCode985. 查询后的偶数和 | Sum of Even Numbers After Queries
    [Swift]LeetCode494. 目标和 | Target Sum
    [Swift]LeetCode493. 翻转对 | Reverse Pairs
    [Swift]LeetCode491. 递增子序列 | Increasing Subsequences
    [Swift]LeetCode488. 祖玛游戏 | Zuma Game
  • 原文地址:https://www.cnblogs.com/zhexuejun/p/11871865.html
Copyright © 2020-2023  润新知