2.1Getting started
*Solr实际是使用http通信,所以可以使用任何语言的API
*Solr的一个core包含solr配置文件,lucene索引文件和solr的日志文件
在分布式系统的上下文中,成为collection
*Solr还提供COre Admin API
*query
当query参数设置好,实质上是向solr服务器发送一个http GET请求
搜索参数:
可以自己写到url里,尽量记住常用的搜索参数,对照solrJ的写法
SolrQuery parameters = new SolrQuery();
//new一个query类,用该类设置参数,然后提交给solr,并返回结果
q:主要搜索参数,搜索关键词SolrJ:parameters.setQuery("")
fq:filter query:过滤结果parameters.set("fq",filterExpression);
sort:排序 parameters.addSort("creation_date", ORDER.desc);//按日期排序
start,rows:和分页有关,还没看
fl:设定返回的域 parameters.setFields("id","content_type","creation_date");
这里查了solrQuery的源代码,setField确实是设置fl参数,但他也不写个注释,api只有方法名,什么说明都没有,真是懒!
df:默认的搜索域
wt:返回类型(SolrJ返回Java数据,用不到)
注:具体学习要看solrJ的源代码,理解代码结构,能够对solr理解更深入!!!
*ranked retrieval
每次搜索,lucene返回一个query与文档的相关性的score,默认排序是按score从高到第排序
query的不同keyword还可以boost以提高重要性
*paging
返回大量结果的代价比得到大量结果的代价高,还有用户体验的考虑,搜索引擎都有分页技术。
与我们的项目结合:
返回分页结果难度不大,但怎么用jsp分页显示反而不太会
解决:参照solr给的例子Solritas,网上查找jsp怎么分页
*sorting
solr默认用score排序,可以自定义 排序字段
但如果score都相同,solr是否会产生固定的结果?
答案是yes!
solr先匹配到所有匹配query的文档,然后再进行sort和page
匹配的顺序是ID的顺序,同时也是indexed的顺序
*Expanded search features高级搜索特性
*dismax —Disjunction Max query parser (see chapter 7)??
edismax —Extended Disjunction Max query parser (see chapter 7)??
hl —Hit highlighting (see chapter 9):高亮
facet —Faceting (see chapter 8):分类
spatial —Geospatial search, such as sorting by geo distance (see chapter 15):地图搜索
spellcheck —Spell-checking on query terms (see chapter 10):拼写检查
solr提供了用apache velocity写成的搜索程序样例,在techproducts下,有点牛b!
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com