关键字: 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(是否有多个值)等等。
例:
- <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>
<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》建议建立了一个拷贝字段,将所有的全文字段复制到一个字段中,以便进行统一的检索:
- <field name="all" type="text" indexed="true" stored="false" multiValued="true"/>
<field name="all" type="text" indexed="true" stored="false" multiValued="true"/>
并在拷贝字段结点处完成拷贝设置:
- <copyField source="name" dest="all"/>
-
<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是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。
SOLR搭建企业搜索平台,步骤清晰,适合初学者
solr配置搜索引擎平台 一、 SOLR搭建企业搜索平台 二.... 三,,,,
SOLR搭建企业级搜索引擎 很详细 很不错哦
NULL 博文链接:https://kunkun39.iteye.com/blog/1765564
Solr服务器搭建详细步骤。
资源名称:相关性搜索 利用Solr与Elasticsearch创建智能应用内容简介:《相关性搜索:利用Solr与Elasticsearch创建智能应用》揭开了相关性搜索的神秘面纱,告诉大家如何将 Elasticsearch与 Solr这样的搜索引擎作为可...
自己简单搭建的solr,仅供参考
solr在tomcat下的搭建和配置数据库
docker配置solr登录密码文件,内含配置密码的文件 、web.xml的文件 ,详情可以去看我的博客,博客地址:https://blog.csdn.net/huyande123/article/details/97110784
配置solr所需要的配置文件,这些配置文件要放到指定的目录下
如何使用solr搭建服务器
solr环境搭建的相关资料,包括solr4.10.3的项目war包以及分词器所需的jar包
lucene的应用.pdf 01solr企业级搜索引擎准备阶段.pdf 02solr企业级搜索引擎实战演练.pdf 适合新手搭建solr使用
solr 安装与配置
已经成熟和测试过的solr搭建和试用,里面包含启动solr
包含solr的环境搭建及配置文件详解,和solrJ项目
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的...