1、Apache Solr是什么?
Solr是Apache下的一个顶级开源项目,采用Java开发,是基于Lucene的全文搜索服务器。提供比Lucene更为丰富的查询语言,实现了可配置、可扩展,对索引、搜索性能进行了优化
为什么要solr:
1.solr是将整个索引操作功能封装好了的企业级搜索引擎产品
2.solr可以部署到单独的服务器上,它可以提供服务,降低了业务系统的负载
3.solr部署在专门的服务器上,它的索引库就不会受业务系统服务器存储空间的限制
4.solr支持分布式集群,索引服务的容量和能力可以线性扩展
solr的工作机制:
solr就是在lucene工具包的基础之上进行了封装,而且是以web服务的形式对外提供索引功能
业务系统需要使用到索引的功能(建索引,查索引)时,只要发出http请求,并将返回数据进行解析即可
lucene和solr的关系
solr是门户,lucene是底层基础,solr和lucene的关系正如hadoop和hdfs的关系。
2、哪个文件包含数据目录的配置?
Solrconfig.xml包含数据目录的配置.
3、哪个文件包含文档field及field类型的定义?
schema.xml包含文档field及field类型的定义.
4、 Apache Solr的特点是什么?
允许可扩展,高性能索引,接近实时索引。
基于标准的开放接口,如XML、JSON和HTTP。
灵活和高适应的分类查询。
高级和准确的全文搜索。
线性可扩展,自动索引复制,自动故障转移和恢复。
允许并发搜索和更新。
全面的HTML管理界面。
提供与索引兼容的跨平台解决方案。
5、Apache Lucene是什么?
Apache Lucene是一个由Doug Cutting用Java编写的免费、开源、高性能的文本搜索引擎库,由Apache软件基金会提供支持。Lucence为各种格式的文档(如MS Office文档、HTML、PDF、文本文档等)提供了功能齐全的搜索、高亮显示、索引和拼写检查。
注意:solr和elasticsearch都是基于lucence的。
6、请求处理器RequestHandler是什么?
当用户在Solr中运行搜索时,搜索查询由请求处理器RequestHandler处理。SolrRequestHandler是一个Solr插件,它包含了在任何request.Solrconfig.xml文件中执行的逻辑(包含多个具有不同配置的相同SolrRequestHandler类的实例)。
7、field类型包含哪些信息?
field类型包含4类信息:
field类型名称.
Field属性.
实现类.
若为Text Field , 该field类型的分析描述
8、 说一下Solr中的分类查询Faceting ?
如名称所示,分类查询Faceting是对查询结果的重组和归类。分类查询可以让用户更好的查找到准确的结果。
9、如何定义动态Field?
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
如果用户偶然忘记定义一个或多个字段,则动态字段是一个有用的特性。它们可以非常灵活地为模式中没有显式定义的字段建立索引。
10、Field分析器Analyzer是什么?
分析器Analyzer:在创建索引、查询索引时使用。分析器检查字段的文本并生成标记流。分析器可能是一个单独的类,或者它们可能由一系列的标记器和过滤器类组成。
11、tokenizer的作用?
分词器Tokenizer:将字段数据分解为词法单位或标记。
12、Solr基本数据类型有哪些?
date,long,double,text,float
13、solrconfig.xml配置文件中通用的元素有哪些?
1.搜索组件
2.缓存参数
3.Data存放目录
4.请求处理器