一步一步学solr:在开始前我们应该明白什么

简介:

   我就用自己的项目来讲solr应用了,当然他的功能很多,大家可以看这里 http://my.oschina.net/fengnote/blog/288581 功能那是相当的多。

    solr可以理解为与应用分离的一个搜索服务,我们要搭建应用+搜索服务的关联配置实现部分业务。

    我们的项目现在要改功能,一个内容发布系统,做一个站内搜索,原有的框架是SSI的,只把查询部分用solr来实现。

问题是:

    • 我要查询一篇文章关联到N张表

    • 我除了查询文章还要查询分类(也用solr实现)

    • 新增、修改、删除文章/分类后要看到实时的更新数据

    • 分页,多条件可以实现吗,我的数据需要二次处理(比如状态要显示中文)

这几点都做到的话我们以前用代码查询数据库的部分就可以用solr代替。

    分析问题:

        不改变原有架构,可以查询文章、分类,也就是solr中的多个索引,一个索引可以做一个查询, 多个索引可以使用solr多核,后面会讲怎么配置。有些朋友经常听到中文分词,那么他和solr有什么联系吗? solr不是国人开发的,我们查询的条件是中文的,所以加入中文分词器就可以对一句话进行分解,主流的分词器有IKAnalyzer、mmseg4j、paoding等,各个版本的分词器对应solr的配置又是各不相同的,后面讲到配置再细说。多张表的查询在solr里是可以用entity关联的,类似于我们写关联查询,不过都是很easy的,写配置文件就可以了。当我们新增或修改文章的时候在文章的表中加一个字段update_time,文章的最后更新时间,这个时间可以用于和solr索引的最后一次更新时间进行比较,将所有在最后一次更新的时间之后的数据增量更新到索引中。删除可以用一个字段is_del来删除索引中无用的文档(solr里的文档相当于一张“”)

    总结:

    • solr的多核能够解决多个索引的查询问题

    • solr的增量更新能解决实时显示数据

    • 新版本基于RESTAPI的各种接口方便做查询功能

目录
相关文章
|
5月前
|
SQL Java 数据库连接
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
37 0
|
8月前
|
自然语言处理 搜索推荐 Java
Lucene简单使用
Lucene简单使用
51 0
|
9月前
|
Java 应用服务中间件 Maven
最通俗易懂的 - Tomcat 核心源码仿写 第二版代码
Tomcat 核心源码仿写的第二版代码,升级为Maven项目,并将单线程改为多线程
40 0
|
XML 存储 JSON
Solr学习总结
Solr学习总结
127 0
Solr学习总结
|
XML 前端开发 应用服务中间件
拆解Tomcat10: (四) 图解架构(一)
上一篇从Bootstrap类中的main方法开始了代码调试之旅,现在我们继续这个过程,看看Tomcat的核心组件架构。
399 1
拆解Tomcat10: (四) 图解架构(一)
|
XML 前端开发 应用服务中间件
拆解Tomcat10: (四) 图解架构(二)
上一篇从Bootstrap类中的main方法开始了代码调试之旅,现在我们继续这个过程,看看Tomcat的核心组件架构。
434 0
拆解Tomcat10: (四) 图解架构(二)
|
索引
solr课程学习系列-solr的概念与结构(1)
Solr是基于Lucene的采用Java5开发的一个高性能全文搜索服务器。源于lucene,却更比Lucene更为丰富更为强大的查询语言。同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
1613 0