本章主要讲解什么是 Solr Core 以及如何通过网页或手动创建 Solr Core?
一、什么是 Solr Core?
solr 在 lucene 外边做了一层厚厚的封装,主要是为了简化二次开发,提供了一些成熟的解决方案。
solr 可以对多个 core 进行综合管理,并接受请求选择特定的一个或多个 core 执行相关任务。1)从文件结构的角度来看的话,主要包括一份索引(也可能还包括拼写检查索引)、一些配置文件。最主要的配置文件:solrconfig.xml 和 schema.xml。solrconfig.xml从整体上对 core 进行了配置,例如索引的存放路径,字段的最大字段的最大长度(maxFiedlLength)、写锁的超时时间(writeLockTimeout)、锁类型(lockType)、是否压缩索引(useCompoundFile)、内存索引缓冲区大小(ramBufferSizeMB)、合并因子(mergeFactor)、删除策略、自动提交策略、缓存设置等,它好比是一份组装机器人的说明书,里面详细描述了各个部件(handler)的参数。schema.xml主要是对索引的配置,例如分词器、字段名称+索引方法+存储方式+分词方式、唯一标识字段等,它好比是机器人学习的学习方法,机器人主动或被动接受特定数据,按照配置转化成索引,然后通过其部件(handler)展示出来,例如:search、moreLikeThis、spellCheck、factedSearcher等。
core从功能方面来说的话,主要是通过各种 handler 进行工作,这个在上文中也提及过
常见的有:morelikeThis、search、 spellCheck、dataImport等。
那么solr怎么控制这些core进行工作呢?
例如我们输入:http://localhost:8080/solr3.5/core1/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on
这个是检索的目的是:检索core1下的所有内容,并返回前10条。
solr通过request获取requestPath,解析出对应的core名称(这里coreName=core1),然后获取core实例(找到相应的机器人)。
然后解析出select指令,明确告诉core是进行检索任务,任务的具体参数通过solrRequestParser进行解析。solrRequestParser可以看出是将url转换成core识别指令的“翻译器”。下面core就可以调用相应的handler执行任务了。
从外往里看,solr可以看成是:
solr Manager -> solr core -> handler -> component
二、如何通过 solr 页面创建 Core
1、在任意目录下,手动创建相应的文件夹以及配置文件(这里是在 D:\zhaoliang 文件夹下):
conf 文件夹下的文件:
2、文件目录创建完成后,启动 solr jetty 服务器,进入到 solr 管理页面,点击【Core Admin】→【Add Core】
添加完成后,结果如下
在test 和 data 文件夹下:
test
data
到这里我们就完成了 Core 的创建于添加(但是在这里要记住是 jetty 服务器,不是 tomcat,后面我会在总结 tomcat Core 的创建)。
感谢此篇博主的文章 跟益达学Solr5之玩转post.jar