利用开源的 Apache Solr 搜索引擎构建 RESTful 基础存储服务(3)
 
- UID
- 1066743
|

利用开源的 Apache Solr 搜索引擎构建 RESTful 基础存储服务(3)
BLOG 网站的例子理论的说明总是不那么容易理解,下面使用一个使用基于 Apache Solr 构建的 RESTful 基础存储服务的 BLOG 网站的例子来进行更直观的说明。
BLOG 网站的功能本文中的 BLOG 网站例子是一个最简单的 BLOG 网站,仅实现了一个 BLOG 网站应有的最基本的功能:
- 注册 Blogger、Blogger 登录和注销。Blogger 信息包含全部的个人可公开信息,例如姓名、电子信箱、个人主页等;
- Blogger 可以发表、更新和删除 Article,删除 Article 的时候同时也会删除 Article 相关的 Review;不能直接删除 Review。
- Blogger 可以针对 Article 直接使用当前登录信息(用户名和电子邮件)发表 Review,也可以提供其他的用户名和电子信箱发表 Review;
- Blogger 可以基于关键字检索 Article标题或内容符合条件的 Article。
关于 Apache SolrApache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>进行描述。本文中的例子为了使用方便和容易理解,将用于标识 Document 的 uniqueKey 元素修改为:<uniqueKey>url</uniqueKey>,详细的内容请参考本文所带的例子程序中的 Schema 配置文件的配置。
提示:如果您对诸如 Solr、Document、Field、Schema 等名词感到陌生,请先阅读参考资源中和 Apache Lucene 和 Solr 相关的资源,特别是 IBM developerWorks 中涉及到 Apache Lucene 和 Solr 的文章。
关于 Solrj本文的例子程序使用 Solrj 同 Solr 服务器通信(进行了部分定制开发,详细内容请参考例子程序的代码)。Solrj 是一个访问 Solr 服务器的 Java 客户端,它提供了一个 Java 的接口用于追加、更新和查询的 Solr 的索引库。Solrj 从 Solr 1.3 开始作为 Solr 的一部分发布,因为本文的例子使用的是 Apache Solr 1.4.0,所以您不需要另外下载 Solrj,可以在 Solr 的安装目录下找到 Solrj:SOLR_HOME/dist/solrj-lib。
软件的下载和安装要使用运行本文中的 BLOG 网站例子程序,您必须先下载或安装(解压)以下软件:
- Java 1.5 或更高版本。
- Web 浏览器,我使用的是 Chrome4,不过其他任何现代浏览器都没问题。
- Apache Tomcat 5.5.25,假设安装目录是:TOMCAT_HOME
- Apache Solr 1.4.0,假设安装目录是:SOLR_HOME
- 下载本文中的例子程序和 Solr 模式配置文件:solr-blog.war和 schema.xml
因为安装和配置本文的例子的时候直接使用了 Apache Solr 发布包中的例子索引库,因此不包含可以用来进行测试的 Blogger、Article 等数据。为了能够运行例子程序,请您在安装配置例子程序后,从注册一个新的 Blogger 用户开始进行测试。详细的功能请通过运行本文中的例子或直接参考例子程序的源代码。
安装和测试本文的例子程序下载和安装上述软件以后,需要进行以下配置才能运行本文的例子程序。
- 首先,在 Tomcat 中配置 Apache Solr。将 Apache Solr 应用:SOLR_HOME/dist/ apache-solr-1.4.0.war解压到 TOMCAT_HOME/webapps/solr目录(如果此目录不存在需要您手动创建)。解压完成后打开 TOMCAT_HOME/webapps/solr/WEB-INF/web.xml 文件,将其中的环境变量:solr/home修改为:SOLR_HOME/example/solr(这里使用的是 Solr 安装包附带的例子索引库)。缺省状态下,环境变量 solr/home是被注释掉的,请您解除对 solr/home的注释:
清单 1. TOMCAT_HOME/webapps/solr/WEB-INF/web.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <web-app>
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>SOLR_HOME/example/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
… …
<servlet>
<servlet-name>SolrServer</servlet-name>
<servlet-class>org.apache.solr.servlet.SolrServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
… …
<servlet-mapping>
<servlet-name>SolrServer</servlet-name>
<url-pattern>/select/*</url-pattern>
</servlet-mapping>
… …
</web-app>
|
注意:环境变量 solr/home的值中 SOLR_HOME需要替换成实际的目录信息,而不能保持原状。 |
|
|
|
|
|