Linux ·

Solr 3.5开发应用教程 PDF高清版

1概述

1.1企业搜索引擎方案选型

由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择:

1)基于Lucene自己进行封装实现站内搜索。工作量及扩展性都较大,不采用。

2)调用Google、Baidu的API实现站内搜索。同第三方搜索引擎绑定太死,无法满足后期业务扩展需要,暂时不采用。

3)基于Compass+Lucene实现站内搜索。适合于对数据库驱动的应用数据进行索引,尤其是替代传统的like ‘%expression%’来实现对varchar或clob等字段的索引,对于实现站内搜索是一种值得采纳的方案。但在分布式处理、接口封装上尚需要自己进行一定程度的封装。

4)基于Solr实现站内搜索。封装及扩展性较好,提供了较为完备的解决方案,因此在门户社区中采用此方案。

基于以述的几种方案的综合分析,对于我们公司的搜索引擎方案,采用solr来实现比较合适。

Solr 3.5开发应用教程 PDF高清版 Linux 第1张

1.2Solr的特性

Apache Solr 是一个开源的搜索服务器,Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。定制 Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述所有 Field 及其内容的 XML 文档就可以了。定制搜索的时候只需要发送 HTTP GET 请求即可,然后对 Solr 返回的信息进行重新布局,以产生利于用户理解的页面内容布局。Solr 1.3 版本开始支持从数据库(通过 JDBC)、RSS 提要、Web 页面和文件中导入数据,但是不直接支持从二进制文件格式中提取内容,比如 MS Office、Adobe PDF 或其他专有格式。

更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对 Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用 Solr 创建的索引

Solr的特性包括:

高级的全文搜索功能

专为高通量的网络流量进行的优化

基于开放接口(XML和HTTP)的标准

综合的HTML管理界面

可伸缩性-能够有效地复制到另外一个Solr搜索服务器

使用XML配置达到灵活性和适配性

可扩展的插件体系

1.2.1Solr使用Lucene并且进行了扩展

一个真正的拥有动态域(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)

对Lucene查询语言的强大扩展!

支持对结果进行动态的分组和过滤

高级的,可配置的文本分析

高度可配置和可扩展的缓存机制

性能优化

支持通过XML进行外部配置

拥有一个管理界面

可监控的日志

支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution)

1.2.2Schema(模式)

定义域类型和文档的域

能够驱动智能处理

声明式的Lucene分析器规范

动态域能够随时增加域

拷贝域功能允许对一个域进行多种方式的索引,或者将多个域联合成一个可搜索的域

显式类型能够减少对域类型的猜测

能够使用外部的基于文件的终止词列表,同义词列表和保护词列表的配置

目 录

1 概述 4
1.1 企业搜索引擎方案选型 4
1.2 Solr的特性 4
1.2.1 Solr使用Lucene并且进行了扩展 4
1.2.2 Schema(模式) 5
1.2.3 查询 5
1.2.4 核心 5
1.2.5 缓存 5
1.2.6 复制 6
1.2.7 管理接口 6
1.3 Solr服务原理 6
1.3.1 索引 6
1.3.2 搜索 7
1.4 源码结构 8
1.4.1 目录结构说明 8
1.4.2 Solr home说明 9
1.4.3 solr的各包的说明 10
1.5 版本说明 11
1.5.1 1.3版本 11
1.5.2 1.4版本 12
1.6 分布式和复制 Solr 架构 13
2 Solr的安装与配置 13
2.1 在Tomcat下Solr安装 13
2.1.1 安装准备 13
2.1.2 安装过程 14
2.1.3 验证安装 15
2.2 中文分词配置 15
2.2.1 mmseg4j 15
2.2.2 paoding 19
2.3 多核(MultiCore)配置 22
2.3.1 MultiCore的配置方法 22
2.3.2 为何使用多core ? 23
2.4 配置文件说明 23
2.4.1 schema.xml 24
2.4.2 solrconfig.xml 25
3 Solr的应用 29
3.1 SOLR应用概述 29
3.1.1 Solr的应用模式 29
3.1.2 SOLR的使用过程说明 30
3.2 一个简单的例子 30
3.2.1 Solr Schema 设计 30
3.2.2 构建索引 30
3.2.3 搜索测试 31
3.3 搜索引擎的规划设计 32
3.3.1 定义业务模型 32
3.3.2 定制索引服务 34
3.3.3 定制搜索服务 34
3.4 搜索引擎配置 34
3.4.1 Solr Schema 设计(如何定制索引的结构?) 34
3.5 如何进行索引操作? 36
3.5.1 基本索引操作 36
3.5.2 批量索引操作 37
3.6 如何进行搜索 39
3.6.1 搜索语法 39
3.6.2 排序 42
3.6.3 字段增加权重 42
3.6.4 Solr分词器、过滤器、分析器 42
3.6.5 Solr高亮使用 46
4 SolrJ的用法 46
4.1 搜索接口的调用实例 46
4.2 Solrj的使用说明 47
4.2.1 Adding Data to Solr 47
4.2.2 Directly adding POJOs to Solr 49
4.2.3 Reading Data from Solr 51
4.3 创建查询 51
4.4 使用 SolrJ 创建索引 52
4.5 Solrj包的结构说明 53
4.5.1 CommonsHttpSolrServer 53
4.5.2 Setting XMLResponseParser 53
4.5.3 Changing other Connection Settings 53
4.5.4 EmbeddedSolrServer 54
5 Solr的实际应用测试报告 54
5.1 线下压力测试报告 54
5.2 线上环境运行报告 54
6 solr性能调优 55
6.1 Schema Design Considerations 55
6.1.1 indexed fields 55
6.1.2 stored fields 55
6.2 Configuration Considerations 55
6.2.1 mergeFactor 55
6.2.2 mergeFactor Tradeoffs 56
6.3 Cache autoWarm Count Considerations 56
6.4 Cache hit rate(缓存命中率) 56
6.5 Explicit Warming of Sort Fields 56
6.6 Optimization Considerations 56
6.7 Updates and Commit Frequency Tradeoffs 56
6.8 Query Response Compression 57
6.9 Embedded vs HTTP Post 57
6.10 RAM Usage Considerations(内存方面的考虑) 57
6.10.1 OutOfMemoryErrors 57
6.10.2 Memory allocated to the Java VM 57
7 FAQ 58
7.1 出现乱码或者查不到结果的排查方法: 58

Solr 3.5开发应用教程 PDF高清版下载

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2013年资料/10月6/日/Solr 3.5开发应用教程 PDF高清版

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

或者百度网盘下载: http://pan.baidu.com/s/1gd94MSN

参与评论