怎么去介绍一个知识点?
介绍知识的时候,有清晰的思路,能够很好地展示自己。
我们以“你给我介绍一下solr”
主要还是自己需要进行一些简单的总结
1. 干什么的?
化繁为简的介绍一下这个技术是干嘛的
solr是基于Lucene的,主要用作全文检索。
2. 同类型技术
ElasticSearch,这个时候很自然的需要去了解两种技术的简单区别。
ElasticSearchvs Solr多维度分析对比
3. 可以说说个人心得?
从思想角度对该技术总结总结
solr的使用,主要就是学会索引库的操作和各种条件的搜索
索引库的操作
新增、删除、更新
搜索
- 普通域查询
- 复制域查询
- 动态域查询
- 分页查询
- 分组查询
- 高亮查询
- 过滤查询
- 区间查询
- 排序查询
使用方面
涉及到服务器安装配置和客户端操作。
服务端,安装就是解压一个war包,添加一些jar包,配置scheme.xml
客户端操作,客户端操作可以用solrj或者spring-data-solr,到时候也可以进行二次封装,也可以不需要,因为都是封装给了service层,controller直接传入对象给service层就可以了。
项目使用spring-data-solor的情况
项目使用solrj的情况
4. 服务器方面
这里开始再说具体的使用
会安装
- 解压一个solr-4.10.3.war
- 拷贝example/lib/ext下的日志输出包
- 配置solrhome
会配置(修改schema.xml)
配置中文分词器,IK Analyzer
配置域、复制域、动态域
5. 客户端操作
这里开始再说具体的使用
能记住记过算几个,记不住也正常
a) solrj
关键的几个类
主要是solrServer完成文档操作和搜索
solrServer
,SolrInputDocument,SolrQuery,SearchResult
b) spring-data-solr
关键的几个类
主要是SolrTemplate完成文档操作和搜索
SolrTemplate
、Query、Criteria
### 6. 贴合实际项目
如果项目中使用到了,一定要从项目角度去介绍
7. 可以拓展拓展
solr会考虑集群
solr索引库在商品状态发生改变的时候(审核通过、删除),会通过activeMQ通知更新。
solr搜索结果,可以通过redis缓存
8. 表表态
自己做搜索没啥问题,大概2、3天就能完成复杂的搜索情况。