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> -->
上一篇: 模拟赛20200104 T2【杜教筛】
推荐阅读
-
solr和中文分析器IK Analyzer
-
Lucene入门(3) | 利用 IK-analyzer 进行中文分词
-
Broadleaf电商平台(Solr)配置中文分词(ik-analyzer)
-
solr配置IK中文分词器
-
lucene 的分析器(analyzer)与分词器(tokenizer)和过滤器(tokenfilter)
-
solr配置ik中文分词器
-
Solr --- 安装IK中文分词器
-
Elasticsearch7 内置分词器的使用以及中文(IK)分词器的安装和使用
-
Solr学习(2) Solr4.2.0+IK Analyzer 2012
-
ElasticSearch学习 - (八)安装中文分词器IK和拼音分词器