#solr版本:7.4.0

一、新建Core

  1. 进入安装目录下得server/solr/,创建一个文件夹,如:new_core

  2. 拷贝server/solr/configsets/_default/conf/下的solrconfig.xml、protwords.txt、synonyms.txt、stopwords.txt文件和lang文件夹,到刚刚创建的new_core文件夹下

  3. 拷贝server/solr/configsets/_default/conf/下的schema.xml文件到刚刚创建的new_core文件夹下,将其重命名为schema.xml

  4. 进入solr页面选择Core Admin,设置好名字还有刚才新建的dir,Add Core

  5. 然后在core selector 就能看到刚才新建的core 了。

二、导入MySQL数据

  1. 打开刚添加的solrconfig.xml文件 vi server/solr/new_core/solrconfig.xml,查找一下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. new_core下新增db-data-config.xml文件(样例在安装目录example/example-DIH/solr/db/conf/下有),并添加如下配置:
    <dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_name" user="root" password="" />
    <document>
    <entity name="product"
    query="select product_id as id,title from table_name"
    deltaImportQuery="select product_id as id,title from table_name where PRODUCT_ID='${dih.delta.id}'"
    deltaQuery="select product_id as id from table_name where add_time > '${dataimporter.last_index_time}'">
    </entity>
    </document>
    </dataConfig>
  3. 下载mysql-connector-java驱动 https://dev.mysql.com/downloads/connector/j/
    解压mysql-connector-java-(xxx).jar到安装目录下的server/solr-webapp/webapp/WEB-INF/lib
  4. 在页面上选择Dataimport应该有了
  5. 在Schema上添加字段,如title(要存在query属性的sql语句能查出来的那些字段当中)

  6. 在Dataimport 上执行导入,可以看到已经新增了4条记录了

    然后在query上查看导入结果

三、增量导入MySQL数据

  1. 导入数据不可能每次全量导入,新增的数据只要增量导入就好,检查db-data-config.xml配置,确保有deltaImportQuery, deltaQuery两项
    last_index_time会保存在这个core的Instance目录下的conf/dataimport.properties文件
  2. 现在我在数据表中再插入几条数据
  3. 这次我们在页面选择delta-import执行一下看看
  4. 再去看下结果,也成功导入

    5.这是细心的人会发现dataimport.properties记录的是UTC时间,而数据表中用的是中国时间,要怎么让它们一致呢?
    这里提供一个解决办法,利用sql语句来转换时区:
    修改deltaQuery
    SELECT product_id AS id FROM table_name WHERE add_time > '${dataimporter.last_index_time}'

    改为

    SELECT product_id AS id FROM table_name WHERE add_time > CONVERT_TZ('${dataimporter.last_index_time}', '+00:00', '+08:00')

四、中文分词

  1. 拷贝分词jar到指定目录server/solr-webapp/webapp/WEB-INF/lib/

    cp contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.4.0.jar server/solr-webapp/webapp/WEB-INF/lib/
  2. 编辑schema文件 vi server/solr/new_core/conf/managed-schema
    添加:
    <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
    <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
    </analyzer>
    <analyzer type="query">
    <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
    </analyzer>
    </fieldType>

    把title改为text_cn类型

  3. 重启solr,title已经改为text_cn,但是还没分词效果
  4. 在dataimport选择clean再full-import一次,重新导入数据,再回到字段查看一下Term Info ,这次分词成功了

转载于:https://blog.51cto.com/13956067/2170843

solr7.4创建core,导入MySQL数据,中文分词的更多相关文章

  1. 在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器

    最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程. 版本信息:solr版本6.2.0+tomcat8+jdk1.8 推荐阅读:so ...

  2. Solr7.1---数据库导入并建立中文分词器

     这里只是告诉你如何导入,生产环境不要这样部署你的solr服务. 首先修改solrConfig.xml文件 备份_default文件夹 修改solrconfig.xml 加入如下内容 官方示例:< ...

  3. [转]mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...

  4. Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel

    Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...

  5. Sqoop导入mysql数据到Hbase

    sqoop import --driver com.mysql.jdbc.Driver --connect "jdbc:mysql://11.143.18.29:3306/db_1" ...

  6. Solr 创建core 从MySql数据库中导入数据

    一.创建数据表和数据 在MySql数据中创建mysolrInfo表, 创建字段 id 主键,自动增加 pname :姓名 age :年龄 addtime :增加时间 增加几条数据 二.创建core 当 ...

  7. mysql导入导出数据中文乱码解决方法小结

    linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqld ...

  8. Solr-5.3.1 dataimport 导入mysql数据

    最近需要计算制造业领域大词表每个词的idf,词表里一共九十多万个词,语料一共三百七十多万篇分词后文献.最开始尝试用程序词表循环套语料循环得到每个词的idf,后来又尝试把语料存入mysql然后建立全文索 ...

  9. HeidiSQL工具导出导入MySQL数据

    有时候,为了数据方便导出导入SQL,我们可以借助一定的工具,方便我们队数据库的移植,可以达到事半功倍的效果.在这里,就给大家简单的介绍一款能方便导出或者导入MySQL的数据. ①首先,选择你要导出的数 ...

随机推荐

  1. usdt钱包对接,usdt 对接交易平台,usdtapi,以太坊对接,以太坊代币对接

    usdt钱包对接,usdt 对接交易平台,usdtapi,以太坊对接,以太坊代币对接 自动充提币接口开发. 可对接:商城系统,游戏APP,交易平台,网站,各类APP -实现自动充提,查询,上链等功能接 ...

  2. http之抽丝剥茧,深度剖析http的那些事儿

    最近,小编一心扎跟学技术,毫不顾及头发的掉落速度,都快成地中海了,不过也无大碍,谁让咱是一个爱钻技术的男人呢.最近两周老是看到http,那么这个http,有哪些猫腻呢,很多同学都有这种理解,就是对于h ...

  3. flask-migrate的基本使用

    Flask-migrate 在实际开发环境中,经常会发生数据库修改的行为.一般我们修改数据库不会手动的去修改,而是去修改orm对应的模型, 然后再把模型映射到数据库中.这时候如果有一个工具能专门做这种 ...

  4. python 函数--装饰器

    一.装饰器 1.为什么要用装饰器? 装饰器的功能:在不修改原函数以及调用方式的情况下对原函数功能进行扩展. 二.开放和封闭原则 1.对扩展是开放的 2.对修改是封闭的 三.装饰器的固有结构 impor ...

  5. javascript 入门 之 bootstrap 第一个程序

    <table data-toggle="table"> <thead> <tr> <th>Item ID</th> &l ...

  6. Quil-delta-enhanced 简介

    Quill 是一款时下非常热门的富文本编辑器,它拥有非常强大的扩展能力,可以让开发者根据自己的需要编写插件,使编辑器支持的内容类型更加丰富.它之所以能够拥有这么强大的扩展能力,一方面是因为它的架构和 ...

  7. canal使用记录

    canal是阿里巴巴的来源项目.我们可以通过配置binlog实现数据库监控,得到数据库表或者数据的更新信息.参考我的文档前先去官网看下,可能已经支持更高版本的MySQL了 1. 查看官方开源项目 ht ...

  8. 01-启动jmeter目录功能

    1.bin :存储了jmeter的可执行程序,如启动脚本.配置程序 docs:    api扩展文档存放 lib:   lib\ext   存储了jmeter的整合的功能(如.jar文件程序,和第三方 ...

  9. leetcode-0001 两数之和

    题目地址:https://leetcode-cn.com/problems/two-sum/ 1.暴力解法 直接双重循环,枚举出所有可能的解,时间复杂度为O(n^2),空间复杂度为O(1) var t ...

  10. 搭建WEB、NFS共享、sersync实时同步以及全网定时备份服务流程

    本次实验的主要目的: 1.搭建web服务,使用nfs服务共享的/data目录挂载到web站点目录上. 2.nfs服务器与backup服务器使用sersync实时同步/data目录中的文件. 3.bac ...