Windows系统Solr单机安装
标签(空格分隔): Solr
Solr概览
1, 什么是Solr
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
2,Solr特点
Solr是一个高性能,采用Java开发,Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
3,Solr的工作方式
文档通过Http利用XML 加到一个搜索集合中。Solr查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
4,Solr的服务原理
Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询。
在Solr中,用户通过向部署在servlet 容器中的Solr Web应用程序发送 HTTP 请求来启动索引和搜索。
Solr接受请求,确定要使用的适当SolrRequestHandler,然后处理请求。通过 HTTP 以同样的方式返回响应。 默认配置返回Solr的标准 XML 响应,也可以配置Solr的备用响应格式。
5,Solr原理图
6,Solr索引原理
可以向Solr索引servlet传递四个不同的索引请求:
1) add/update允许向Solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新。
2) commit 告诉Solr,应该使上次提交以来所做的所有更改都可以搜索到。
3) optimize 重构 Lucene 的文件以改进搜索性能。索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程。
4) delete 可以通过 id 或查询来指定。按id删除将删除具有指定id的文档;按查询删除将删除查询返回的所有文档。
7,schema.xml
schema.xml是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否分词,是否存储,是否标准化即Norms,是否存储项向量等等。
1, schema.xml配置文件的根元素就是schema,有个name属性,name属性值可以随便配,根元素没什么好说的,schema元素下主要有两个标签元素即field和fieldType,field表示域,用来定义域,fieldType用来定义域类型。
2, field元素有很多属性可以配置:
name:表示域的名称,是强制必须有的属性
type:域类型的名称,与fieldType元素的name属性值对应,也是强制必须有的属性,不可省略
indexed: true即表示需要对该域进行索引,一般如果你需要在该域上进行查询或排序时,则需要配置为true,默认值为false
stored:表示是否需要把域值存储到硬盘上,方便你后续查询时能再次提取出来原样显示给用户
docValues:表示此域是否需要添加一个docValues域,这对facet查询,group分组,排序,function查询有好处,尽管这个属性不是必须的,但他能加快索引数据加载,对NRT近实时搜索比较友好,且更节省内存,但它也有一些限制,比如当前docVal