什么是Solr多数搜索引擎应用都必须具有某种搜索功能问题是搜索功能往往是巨大的资源消耗并且它们由于沉重的数据库加载而拖垮你的应用的性能。这就是为什么转移负载到一个外部的搜索服务器是一个不错的主意Apache Solr是一个流行的开源搜索服务器。Solr是一个开源搜索平台用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的快速的和高度可扩展的。Solr可以和Hadoop一起使用。由于Hadoop处理大量数据Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索Solr也可以用于存储目的。像其他NoSQL数据库一样它是一种非关系数据存储和处理技术。Solr是一个可扩展的可部署搜索/存储引擎优化搜索大量以文本为中心的数据。IK AnalyzerIK Analyzer 是一个开源的基于java 语言开发的轻量级的中文分词工具包。IK Analyzer配置1、把IKAnalyzer2012FF_u1.jar 添加到 solr 应用lib 目录下2、把扩展词典、停用词词典、配置文件放到 solr 应用WEB-INF/classes 目录下。3、修改schema.xml 文件配置一个 FieldType使用 IKAnalyzerfieldType nametext_ik classsolr.TextField !-- 配置分词器 -- analyzer classorg.wltea.analyzer.lucene.IKAnalyzer/ /fieldType配置域域相当于数据库的表字段用户存放数据因此用户根据业务需要去定义相关的Field域一般来说每一种对应着一种数据用户对同一种数据进行相同的操作。域的常用属性• name域的名称• type域的数据类型• indexed是否索引• stored是否存储• required是否必须• multiValued是否多个值修改solrcore的schema.xml文件设置业务系统Field(tb_item)field nameid typelong indexedtrue storedtrue requiredtrue/ field namegoodsId typelong indexedtrue storedtrue/ field nametitle typetext_ik indexedtrue storedtrue/ field nameprice typedouble indexedtrue storedtrue/ field nameimage typestring indexedfalse storedtrue/ field namecategory typestring indexedtrue storedtrue/ field nameseller typetext_ik indexedtrue storedtrue/ field namebrand typestring indexedtrue storedtrue/ field nameupdateTime typedate indexedtrue storedtrue/当一个域的名称不能确定时我们需要使用动态域。对于品优购规格域的名称是不确定的所以我们需要使用动态域来实现。dynamicField namespec_* typestring indexedtrue storedtrue/!-- 唯一的key主键 -- uniqueKeyid/uniqueKey配置solrconfig.xml注释所有lib标签!-- lib path../a-jar-that-does-not-exist.jar / --修改 field的名称requestHandler name/select classsolr.SearchHandler lst namedefaults str nameechoParamsexplicit/str int namerows10/int str namedfkeywords/str /lst ...... /requestHandleridid不是String类型注释以下内容!-- searchComponent nameelevator classsolr.QueryElevationComponent str namequeryFieldTypestring/str str nameconfig-fileelevate.xml/str /searchComponent --