`

利用SOLR搭建企业搜索平台 之三(配置文件)

阅读更多

关键字: solr lucene 搭建 配置 http://www.dzxiaoshuo.com

http://www.dzxiaoshuo.com

运行solr是个很简单的事,如何让solr高效运行你的项目,这个就不容易了。要考虑的因素太多。这里很重要一个就是对solr的配置要了解。懂得配置文件每个配置项的含义,这样操作起来就会如鱼得水!

在solr里面主要的就是solr的主目录下面的schema.xml,solrConfig.xml,如果你看过前两篇文章的话,你应该知道solr的主目录处于什么位置(c:\solr-tomcat\solr\conf\)。

在这个文章中,我们首先来说说这个schema.xml。

schema.xml,这个相当于数据表配置文件,它定义了加入索引的数据的数据类型的。主要包括types、fields和其他的一些缺省设置。

1》首先需要在types结点内定义一个FieldType子结点,包括name,class,positionIncrementGap等等一些参数,name就是这个FieldType的名称,class指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为。在FieldType定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤。在例子中text这个FieldType在定义的时候,在index的analyzer中使用 solr.WhitespaceTokenizerFactory这个分词包,就是空格分词,然后使用 solr.StopFilterFactory,solr.WordDelimiterFilterFactory,solr.LowerCaseFilterFactory,solr.EnglishPorterFilterFactory,solr.RemoveDuplicatesTokenFilterFactory 这几个过滤器。在向索引库中添加text类型的索引的时候,Solr会首先用空格进行分词,然后把分词结果依次使用指定的过滤器进行过滤,最后剩下的结果才会加入到索引库中以备查询。Solr的analysis包并没有带支持中文的包,在第二篇文章中详细讲了怎样添加paoding中文分词器,详情请参见http://lianj-lee.iteye.com/blog/424474

2》接下来的工作就是在fields结点内定义具体的字段(类似数据库中的字段),就是filed,filed定义包括name,type(为之前定义过的各种FieldType),indexed(是否被索引),stored(是否被储存),multiValued(是否有多个值)等等。
例:
Xml代码 复制代码
  1. <fields>  
  2.     <field name="id" type="integer" indexed="true" stored="true" required="true" />  
  3.     <field name="name" type="text" indexed="true" stored="true" />  
  4.     <field name="summary" type="text" indexed="true" stored="true" />  
  5.     <field name="author" type="string" indexed="true" stored="true" />  
  6.     <field name="date" type="date" indexed="false" stored="true" />  
  7.     <field name="content" type="text" indexed="true" stored="false" />  
  8.     <field name="keywords" type="keyword_text" indexed="true" stored="false" multiValued="true" />  
  9.     <field name="all" type="text" indexed="true" stored="false" multiValued="true"/>  
  10. </fields>  
<fields>
	<field name="id" type="integer" indexed="true" stored="true" required="true" />
	<field name="name" type="text" indexed="true" stored="true" />
	<field name="summary" type="text" indexed="true" stored="true" />
	<field name="author" type="string" indexed="true" stored="true" />
	<field name="date" type="date" indexed="false" stored="true" />
	<field name="content" type="text" indexed="true" stored="false" />
	<field name="keywords" type="keyword_text" indexed="true" stored="false" multiValued="true" />
	<field name="all" type="text" indexed="true" stored="false" multiValued="true"/>
</fields>

field的定义相当重要,有几个技巧需注意一下,对可能存在多值得字段尽量设置multiValued属性为true,避免建索引是抛出错误;如果不需要存储相应字段值,尽量将stored属性设为false。

3》建议建立了一个拷贝字段,将所有的全文字段复制到一个字段中,以便进行统一的检索:
Xml代码 复制代码
  1. <field name="all" type="text" indexed="true" stored="false" multiValued="true"/>  
<field name="all" type="text" indexed="true" stored="false" multiValued="true"/>

并在拷贝字段结点处完成拷贝设置:
Xml代码 复制代码
  1. <copyField source="name" dest="all"/>  
  2. <copyField source="summary" dest="all"/>  
<copyField source="name" dest="all"/>
<copyField source="summary" dest="all"/>


4》除此之外,还可以定义动态字段,所谓动态字段就是不用指定具体的名称,只要定义字段名称的规则,例如定义一个dynamicField,name 为*_i,定义它的type为text,那么在使用这个字段的时候,任何以_i结尾的字段都被认为是符合这个定义的,例如:name_i,gender_i,school_i等。

schema.xml配置文件大体上就是这样,更多细节请参见solr wiki http://wiki.apache.org/solr/SchemaXml。如果以后有时间,我会定时更新这篇文章,以争取能让更多初学者带来便利。
分享到:
评论

相关推荐

    SOLR搭建企业搜索平台

    本文将详细阐述如何利用SOLR搭建一个企业搜索平台,包括所需环境、配置步骤以及中文分词的设置。 一、SOLR搭建企业搜索平台 1. **运行环境** - **运行容器**:Tomcat 6.0.20 - **Solr版本**:apache-solr-1.4.0 ...

    利用Solr搭建你的搜索引擎

    标题中的“利用Solr搭建你的搜索引擎”意味着我们将探讨Apache Solr这一开源全文搜索平台的搭建过程。Solr是基于Lucene库的,提供了一个高效、可扩展的搜索和导航功能,广泛应用于各种企业的数据检索需求。 Solr的...

    solr在tomcat下的搭建和配置数据库

    通过这种方式,可以有效地利用Solr强大的搜索功能对数据库中的数据进行高效检索,满足大数据量下的快速搜索需求。在实际应用中,根据具体的需求可能还需要进一步调整Solr的配置参数以优化性能。

    solr环境搭建总结一

    本文将详细介绍如何搭建Solr环境,并解析其配置文件,同时也会涉及SolrJ客户端的使用。 **一、Solr环境搭建** 1. **系统需求**: Solr可以在多种操作系统上运行,包括Windows、Linux和Mac OS。确保你的系统已安装...

    solr集群搭建

    Solr集群搭建是一个复杂但重要的过程,用于实现大型、高可用性和可扩展性的搜索解决方案。Apache Solr是一款基于Lucene的开源全文搜索引擎,它提供了分布式搜索、近实时处理、多字段排序等功能。以下是对Solr集群...

    solr搭建教程文档

    【Solr搭建教程文档】 SolrCloud是Apache Solr的一个分布式搜索和索引服务的实现,它结合了Zookeeper来管理集群状态和分布式操作。本教程将指导你在Win7环境下搭建一个单机版的伪分布式SolrCloud环境,利用Tomcat...

    solr的搭建入门

    Apache Solr是一款开源的企业级搜索平台,由Apache软件基金会开发,它提供了全文检索、命中高亮、拼写检查、Faceted Search(分面搜索)等多种功能,广泛应用于网站内容搜索、电商商品检索等领域。本文将详细介绍...

    solr_3.5_配置及应用

    在《使用 Apache Solr 实现更加灵巧的搜索,第 1 部分 基本特性和 Solr 模式》文档中,你可能会学习到更多关于 Solr 的基础特性,如查询优化、分词器选择、查询分析过程以及如何利用 Solr 的模式设计来提升搜索体验...

    使用lucenesolr搭建Oracle数据库全文搜索服务.docx

    ### 使用Lucene Solr搭建Oracle数据库全文搜索服务 #### 一、基础知识介绍 - **Lucene**: 是一个高性能、全功能的全文检索引擎库。它为开发者提供了构建搜索应用程序所需的工具,但不提供完整的搜索应用。 - **...

    优秀的开源搜索引擎solr的配置

    **一、Solr搭建企业搜索平台** 1. **运行环境与组件准备** - **运行容器**:推荐使用Tomcat作为Solr的运行容器,例如Tomcat 6.x或5.x。 - **Solr版本**:这里使用的是apache-solr-1.4.0,但建议使用较新版本以...

    CentOS_x64_6.5_搭建Solr搜索1

    它由 Java 编写,设计目的是提供一个高效、可扩展的企业级搜索平台。Solr 允许用户通过简单的 HTTP GET 请求进行全文检索,并能以 XML、JSON 等多种格式返回查询结果。它不包含构建用户界面的功能,但提供了管理界面...

    Java搜索服务Solr操作指南.pdf

    Solr是一个独立的基于全文检索的企业级搜索应用服务器,它支持通过HTTP利用XML将文档加载到搜索集合中,用户可以通过HttpGet操作发送查找请求,并得到搜索的返回结果。在Java后台开发中,Solr通过SolrJ客户端库与...

    solr资料以及问题汇总

    "教你使用solr搭建你的全文检索.mht"文件是一个教程,指导用户如何从零开始搭建Solr全文检索系统。全 文检索是Solr的主要功能,包括字段匹配、模糊搜索、高亮显示等,搭建过程涉及Solr的安装、配置、数据导入和搜索...

    我的配置成功的solr8+tomcat.zip

    同时,利用Solr提供的监控工具或第三方工具,监控Solr和Tomcat的资源使用情况,确保系统健康稳定。 以上便是关于“我的配置成功的solr8+tomcat.zip”的主要内容,这个压缩包可能包含了Solr8、Tomcat9的安装文件,...

    Solr集群搭建,Solr提供的分布式搜索方案

    ### Solr集群搭建与SolrCloud分布式搜索方案详解 #### 一、SolrCloud概述 SolrCloud 是 Apache Solr 提供的一种分布式搜索解决方案。它主要用于处理大规模数据集的索引和检索工作,并具备容错性和分布式特性。当...

    solr全文检索环境搭建

    Solr全文检索环境搭建 Apache Solr是一款基于Java的开源搜索服务器,专为高效全文检索、拼写检查、高亮显示结果以及...记住,实践是掌握技术的关键,不断尝试和探索,你将能更好地利用Solr提升你的应用的搜索体验。

    自己搭建的Solr环境

    你可以根据需求自定义这些配置文件,如`schema.xml`用于定义字段和类型,`solrconfig.xml`用于配置索引和查询行为。 索引数据是Solr的主要任务。Solr支持多种数据导入方式,如使用SolrJ Java库、命令行工具或直接...

Global site tag (gtag.js) - Google Analytics