首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

利用开源的 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.xml
1
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需要替换成实际的目录信息,而不能保持原状。
返回列表