昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务;今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索。

在solr服务中集成IKAnalyzer中文分词器的步骤:

1、下载IKAnalyzer分词器的压缩包并解压;

2、将IKAnalyzer压缩包中的jar包复制到Tomcat容器中已经部署的solr项目中的WEB-INF/lib目录下;

3、在Tomcat容器的solr项目中的WEB-INF/目录创建一个classes目录(默认该目录是不存在的,需手动创建),并将分词器压缩包中的配置文件、自定义词典、通用词典三个文件拷贝到classes目录中;

4、找到solr的家目录,即solrHome目录,修改solrHome/collection1/conf/schema.xml文件中定义IK域的类型、定义自定义域配置内容;

  <!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType> <!--IKAnalyzer Field-->
<field name="content_ik" type="text_ik" indexed="true" stored="true" />

5、重新启动Tomcat容器,检验是否配置成功,如果出现以下界面中的内容,则集成成功,可以看到我们刚才在solrHome的配置文件中配置的自定义域和IK域的类型。

使用dataimportHandler插件批量导入数据,在solr服务中集成dataimportHandler插件的步骤:

1、找到solrHome/collection1目录,创建一个lib目录,将插件所依赖的jar包和数据库驱动包拷贝到lib目录下(dataimportHandler插件依赖的jar包可以在下载好的solr压缩包中找到);

插件依赖的jar包在dist目录下:

2、找到solrHome/collection1/conf/solrconfig.xml文件,添加如下配置内容:

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

3、根据创建的数据表在solrHome/collection1/conf/schema.xml配置文件中配置业务域(温馨提示:业务域根据数据表的字段名称来配置);

   <!--product-->
<field name="product_name" type="text_ik" indexed="true" stored="true"/>
<field name="product_price" type="float" indexed="true" stored="true"/>
<field name="product_description" type="text_ik" indexed="true" stored="false" />
<field name="product_picture" type="string" indexed="false" stored="true" />
<field name="product_catalog_name" type="string" indexed="true" stored="true" /> <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="product_name" dest="product_keywords"/>
<copyField source="product_description" dest="product_keywords"/>

4、需要创建一个文件名称为data-config.xml的配置文件,并且拷贝到solrHome/collection1/conf目录下;data-config.xml文件中的配置内容如下(温馨提示:根据自己的需求的来添加配置内容,如数据库连接的参数信息,数据库中表字段的名称等):

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solr"
user="root"
password="123"/> <document>
  <!-- column代表数据表中的字段名称,name代表配置文件中的业务域的name属性值名称 -->
<entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
<field column="pid" name="id"/>
<field column="name" name="product_name"/>
<field column="catalog_name" name="product_catalog_name"/>
<field column="price" name="product_price"/>
<field column="description" name="product_description"/>
<field column="picture" name="product_picture"/>
</entity>
</document>
</dataConfig>

5、重启Tomcat容器,检验插件是否集成成功,如果集成成功,则会看到如下界面,看到成功界面后,就可以导入指定数据表中的数据,导入操作在下图中已表明:

[后续会更新京东站内搜索-solr架构案例,有需要的朋友可以继续关注!!!]

solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件的更多相关文章

  1. Solr学习笔记之2、集成IK中文分词器

    Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...

  2. Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词

    一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在p ...

  3. Solr的学习使用之(三)IKAnalyzer中文分词器的配置

    1.为什么要配置? 1.我们知道要使用Solr进行搜索,肯定要对词语进行分词,但是由于Solr的analysis包并没有带支持中文的包或者对中文的分词效果不好,需要自己添加中文分词器:目前呼声较高的是 ...

  4. 2.IKAnalyzer 中文分词器配置和使用

    一.配置 IKAnalyzer 中文分词器配置,简单,超简单. IKAnalyzer 中文分词器下载,注意版本问题,貌似出现向下不兼容的问题,solr的客户端界面Logging会提示错误. 给出我配置 ...

  5. 我与solr(六)--solr6.0配置中文分词器IK Analyzer

    转自:http://blog.csdn.net/linzhiqiang0316/article/details/51554217,表示感谢. 由于前面没有设置分词器,以至于查询的结果出入比较大,并且无 ...

  6. 【solr】solr5.0整合中文分词器

    1.solr自带的分词器远远满足不了中文分词的需求,经查使用最多的分词器是solr是mmseg4j分词器,具体整合大家可以参考 https://github.com/zhuomingliang/mms ...

  7. Solr集成IK中文分词器

    1.将IKAnalyzer-2012-4x.jar拷贝到example\solr-webapp\webapp\WEB-INF\lib下: 2.在schema.xml文件中添加fieldType: &l ...

  8. Solr 安装与集成IK中文分词器

    创建wangchuanfu core 1.  在example目录下创建wangchuanfu-solr文件夹: 2.  将./solr下的solr.xml拷贝到wangchuanfu-solr目录下 ...

  9. solr 7.7.0配置中文分词器的数据类型

    <dynamicField name="*_is" type="pints" indexed="true" stored=" ...

随机推荐

  1. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  2. salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)

    本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github ...

  3. 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...

  4. SuperMap iClient for JavaScript 新手入门

    地理信息系统(英语:Geographic Information System,缩写:GIS)是一门综合性学科,结合地理学与地图学,已经广泛的应用在不同的领域,是用于输入.存储.查询.分析和显示地理数 ...

  5. 深入理解BFC

    定义 在解释BFC之前,先说一下文档流.我们常说的文档流其实分为定位流.浮动流和普通流三种.而普通流其实就是指BFC中的FC.FC是formatting context的首字母缩写,直译过来是格式化上 ...

  6. CSS 特殊属性介绍之 pointer-events

    首先看一下 MDN 上关于 pointer-events 的介绍: CSS属性 pointer-events 允许作者控制特定的图形元素在何时成为鼠标事件的 target.当未指定该属性时,SVG 内 ...

  7. jQuery学习之路(3)- 事件

    ▓▓▓▓▓▓ 大致介绍 jQuery增加了并扩展了基本的事件处理机制,不但提供了更加优雅的事件处理语法,而且极大地增强了事件处理能力 ▓▓▓▓▓▓ jQuery中的事件 ▓▓▓▓▓▓ 加载DOM 在j ...

  8. SDWebImage源码解读 之 UIImage+GIF

    第二篇 前言 本篇是和GIF相关的一个UIImage的分类.主要提供了三个方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name ----- 根据名 ...

  9. CSS三个定位——常规、浮动、绝对定位

    .dage { width: 868px; background: #5B8C75; border: 10px solid #A08C5A; margin-top: -125px; margin-le ...

  10. 如何为你的微信小程序体积瘦身?

    众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了. 在设计一个小程序之初,我们就需要重 ...