solr和中文分析器IK Analyzer

什么是Solr

  多数搜索引擎应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源消耗并且它们由于沉重的数据库加载而拖垮你的应用的性能。

  这就是为什么转移负载到一个外部的搜索服务器是一个不错的主意,Apache Solr是一个流行的开源搜索服务器。

  Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。

  Solr可以和Hadoop一起使用。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,它是一种非关系数据存储和处理技术。

  Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据。

  

IK Analyzer

  IK Analyzer 是一个开源的,基于java 语言开发的轻量级的中文分词工具包。

  IK Analyzer配置:

  1、把IKAnalyzer2012FF_u1.jar 添加到 solr 应用lib 目录下

  2、把扩展词典、停用词词典、配置文件放到 solr 应用WEB-INF/classes 目录下。

  3、修改schema.xml 文件,配置一个 FieldType,使用 IKAnalyzer

<fieldType name="text_ik" class="solr.TextField">
	<!-- 配置分词器 -->
	<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

  配置域

  域相当于数据库的表字段,用户存放数据,因此用户根据业务需要去定义相关的Field(域),一般来说,每一种对应着一种数据,用户对同一种数据进行相同的操作。

  域的常用属性:
• name:域的名称
• type:域的数据类型
• indexed:是否索引
• stored:是否存储
• required:是否必须
• multiValued:是否多个值


  修改solrcore的schema.xml文件,设置业务系统Field(tb_item)

<field name="id" type="long" indexed="true" stored="true" required="true"/>
<field name="goodsId" type="long" indexed="true" stored="true"/>
<field name="title" type="text_ik" indexed="true" stored="true"/>
<field name="price" type="double" indexed="true" stored="true"/>
<field name="image" type="string" indexed="false" stored="true"/>
<field name="category" type="string" indexed="true" stored="true"/>
<field name="seller" type="text_ik" indexed="true" stored="true"/>
<field name="brand" type="string" indexed="true" stored="true"/>
<field name="updateTime" type="date" indexed="true" stored="true"/>

  当一个域的名称不能确定时,我们需要使用动态域。对于品优购,规格域的名称是不确定的,所以我们需要使用动态域来实现。

<dynamicField name="spec_*" type="string" indexed="true" stored="true"/>
<!-- 唯一的key主键 -->
<uniqueKey>id</uniqueKey>

  配置solrconfig.xml

  注释所有lib标签

<!-- <lib path="../a-jar-that-does-not-exist.jar" /> -->

  修改 field的名称

<requestHandler name="/select" class="solr.SearchHandler">
	   <lst name="defaults">
	       <str name="echoParams">explicit</str>
	       <int name="rows">10</int>
	       <str name="df">keywords</str>
	   </lst>
......
</requestHandler>

  id:id不是String类型,注释以下内容:

<!--
<searchComponent name="elevator" 
	       class="solr.QueryElevationComponent" >
		<str name="queryFieldType">string</str>
		<str name="config-file">elevate.xml</str>
</searchComponent> -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值