Solr学习总结(七)Solr搜索引擎的整体架构

本文总结了Solr搜索引擎的基础知识与实际应用场景,包括安装配置、查询语法、客户端使用等,并介绍了生产环境中Solr的整体架构,涉及索引更新规则和服务部署方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Solr学习总结(七)Solr搜索引擎的整体架构

  经过前面一段时间的努力,终于把我所知道的关于solr 的内容都总结完了。前面讲到了solr 的安装配置,web管理后台的使用,solr 的查询参数和查询语法,还说到了solr的客户端 solrnet 的基本用法和Query,Facet,高亮等实际开发中的常用方法。可以说solr的相关的基础的内容,都已经讲到了。 

  但是,总还是觉得,还少点什么,感觉还有很多没有总结到。比如分词,数据导入,索引增量更新,Solr服务器的主从复制等等。确实还有很多内容没有总结到位。

  然而,细想之后,我又发现,对于Solr的实际运用中的各种问题,是总结不完的。每个人碰到的都是不一样。你碰到的问题,有可能大家谁都没有碰到过,你是第一个。所以只有大家相互交流,相互分享,一起探讨解决办法。

 

  最后讲一讲,实际生产过程中,solr 是如何使用的,Solr整体的架构(但是这也只是个基础的架构,实际情况可能比这个复杂的多)。

  

  说明:

  1. Window索引服务,负责定时增量更新(有人会问为什么不用solr的自动增量更新,我只能说,这是各个项目的选择)。

  2. Search 是一个wcf 或是web api 接口。负责提供索引查询服务。

  3. Solr 服务器集群,按照主从模式。

 

  索引更新规则:

  1. 这里用的是Windows服务,定时自动执行更新。而不是直接通过数据库更新。(很多人问我,配置Solr 数据库更新,其实不必,实际生产环节,都是通过程序自动更新。很少用solr data import)。

  2. 商品和店铺的索引更新,例如商品上下架,价格修改等,10分钟内增量更新到Solr 索引。

  3. 每天晚上,执行全量更新。保证数据库中的数据,都全部更新到线上索引。

        

  最后的最后,本人才疏学浅,了解有限,只是把自己知道的写出来,如有不足或不正确之处,欢迎大家批评指正,相互交流。

 

posted @ 2016-01-04 10:34 章为忠 阅读( ...) 评论( ...) 编辑 收藏
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.1 Solr使用Lucene并且进行了扩展  一个真正的拥有动态域(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema)  对 Lucene 查询语言的强大扩展!  支持对结果进行动态的分组和过滤  高级的,可配置的文本分析  高度可配置和可扩展的缓存机制 5/8/2011 Page 4 5/8/20112009-02-17 版权所有,侵权必究All rights reserved 第4页,共56页Page 4 , Total56  性能优化  支持通过 XML 进行外部配置  拥有一个管理界面  可监控的日志  支持高速增量式更新(Fast incremental Updates)和快照发布(Snapshot Distribution) 1.2.2 Schema(模式)  定义域类型和文档的域  能够驱动智能处理  声明式的 Lucene 分析器规范  动态域能够随时增加域  拷贝域功能允许对一个域进行多种方式的索引,或者将多个域联合成一个可搜索的域  显式类型能够减少对域类型的猜测  能够使用外部的基于文件的终止词列表,同义词列表和保护词列表的配置 1.2.3 查询  拥有可配置响应格式(XML/XSLT,JSON,Python,Ruby)的 HTTP 接口  高亮的上下文搜索结果  基于域值和显式查询的片段式搜索(Faceted Search)  对查询语言增加了排序规范  常量的打分范围(Constant scoring range)和前缀式查询-没有 idf,coord,或者 lengthNorm 因子,对查询匹配的词没有数量限制  函数查询(Function Query)-通过关于一个域的数值或顺序的函数对打分进行影响  性能优化 1.2.4 核心  可插拔的查询句柄(Query Handler)和可扩展的 XML 数据格式  使用唯一键的域能够增强文档唯一性  能够高效地进行批量更新和删除  用户可配置的文档索引变化触发器(命令)  并发控制的搜索器  能够正确处理数字类型,从而能够进行排序和范围搜索  能够控制缺失排序域的文档  支持搜索结果的动态分组 1.2.5 缓存  可配置的查询结果,过滤器,和文档缓存实例  可插拔的缓存实现  后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将它热启,避免第一个结果慢 下来,当热启时,当前搜索器处理目前的请求(???)。  后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索器中再次生成,能够在索引 器和搜索器变化的时候高速缓存常查询的结果 5/8/2011 Page 5 5/8/20112009-02-17 版权所有,侵权必究All rights reserved 第5页,共56页Page 5 , Total56  快速和小的过滤器实现  支持自动热启的用户级别的缓存 1.2.6 复制  能够将使用 rsync 传输时改变的索引部分有效的发布  使用拉策略(Pull Strategy)来简化增加搜索器  可配置的发布间隔能够允许对时间线和缓存使用进行权衡选择 1.2.7 管理接口  能够对缓存使用,更新和查询进行综合统计  文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

章为忠学架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值