搜索解决方案solr的安装部署

Apache Solr
是一个流行的开源搜索服务器,它通过使用类似REST的HTTP API,确保几乎任何编程语言都能来使用solr。
之所以使用solr,是因为只要是自带搜索应用的系统或页面,搜索功能往往是有着巨大资源消耗,导致请求时间大大延长。
solr是基于Lucene(全文检索系统)对其进行了扩展,提供了更加丰富的查询语句。对性能做出一定优化,且提供一个完整的功能管理页面。
lucene本质是搜索库,而solr则是独立的应用程序。
lucene专注于搜索底层的建设,solr专注于企业应用。
solr是lucene面向企业搜索应用的扩展。
solr下载路径:
https://archive.apache.org/dist/lucene/solr/
使用步骤:
1:安装 Tomcat,解压缩即可。
2:解压 solr。
3:把 solr 下的dist目录solr-4.10.3.war部署到 Tomcat\webapps下(去掉版本号)。
4:启动 Tomcat解压缩 war 包
5:把solr下example/lib/ext 目录下的所有的 jar 包,添加到 solr 的工程中(\WEB-INF\lib目录下)。
6:创建一个 solrhome 。solr 下的/example/solr 目录就是一个 solrhome。复制此目录到D盘改名为solrhome 。
7:关联 solr 及 solrhome。需要修改 solr 工程的 web.xml 文件。

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>d:\solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

8:启动 Tomcat
http://IP:8080/solr/

IK Analyzer配置

1、把IKAnalyzer2012FF_u1.jar 添加到 solr 工程的 lib 目录下
2、创建WEB-INF/classes文件夹 把扩展词典、停用词词典、配置文件放到 solr 工程的 WEB-INF/classes 目录下。(也就是ext_stopword.dic,IKAnalyzer.cfg.xml,mydict.dic)。
3、修改 Solrhome 的 schema.xml 文件,配置一个 FieldType,使用 IKAnalyzer

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

配置solr的域
name:字段名
type:字段类型
indexed:是否启用索引,true启用,false不用。主要用来查询,排序。
stored:是否被存储,存储的话会占用cpu,io,和磁盘空间。
required:是否必须。类似于数据库的非空。默认为假。
default:字段默认值。无法提供时,用默认值代替。
multiValued:是否多值,表示这个字段在一个文档中是否可以存储多个值的内容。

修改solrhome的schema.xml 文件 设置业务系统 Field

    <field name="item_goodsid" type="long" indexed="true" stored="true"/>
	<field name="item_title" type="text_ik" indexed="true" stored="true"/>
	<field name="item_price" type="double" indexed="true" stored="true"/>
	<field name="item_image" type="string" indexed="false" stored="true" />
	<field name="item_category" type="string" indexed="true" stored="true" />
	<field name="item_seller" type="text_ik" indexed="true" stored="true" />
	<field name="item_brand" type="string" indexed="true" stored="true" />

复制域(集合域),将某一个Field中的数据复制到另一个域中。

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_category" dest="item_keywords"/>
<copyField source="item_seller" dest="item_keywords"/>
<copyField source="item_brand" dest="item_keywords"/>

动态域(需要动态扩充字段时,需要使用动态域)

在这里插入图片描述

<dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />	

配置文件修改之后,必须重启Solr。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值