Board logo

标题: 利用开源的 Apache Solr 搜索引擎构建 RESTful 基础存储服务(3) [打印本页]

作者: look_w    时间: 2018-9-14 16:48     标题: 利用开源的 Apache Solr 搜索引擎构建 RESTful 基础存储服务(3)

BLOG 网站的例子理论的说明总是不那么容易理解,下面使用一个使用基于 Apache Solr 构建的 RESTful 基础存储服务的 BLOG 网站的例子来进行更直观的说明。
BLOG 网站的功能本文中的 BLOG 网站例子是一个最简单的 BLOG 网站,仅实现了一个 BLOG 网站应有的最基本的功能:
关于 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 网站例子程序,您必须先下载或安装(解压)以下软件:
因为安装和配置本文的例子的时候直接使用了 Apache Solr 发布包中的例子索引库,因此不包含可以用来进行测试的 Blogger、Article 等数据。为了能够运行例子程序,请您在安装配置例子程序后,从注册一个新的 Blogger 用户开始进行测试。详细的功能请通过运行本文中的例子或直接参考例子程序的源代码。
安装和测试本文的例子程序下载和安装上述软件以后,需要进行以下配置才能运行本文的例子程序。
清单 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需要替换成实际的目录信息,而不能保持原状。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0