加强的企业级搜索解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常及历史文章,默认展现“正常文章”,点击“历史”按钮可 以切换到历史文章搜索结果,同样可以再次点击“正常”切换 回来; 3) 输出结果中文章标题请用比正文大一号的蓝色粗体显示,搜索 到的关键字请用红色字体显示,其他部分用黑色普通字即可; 4) 搜索结果列表中的数据已经默认使用了知识两维的浏览权限; 5) 默认排序规则:文章标题>文章关键字>全文检索;同一条件
Info
http://localhost:8080/solr/admin/registry.jsp
Distribution
http://localhost:8080/solr/admin/distributiondump.jsp
Ping
http://localhost:8080/solr/admin/ping
listener
项定义newSearcher和 firstSearcher事件,您可 以使用这些事件来指定 实例化新搜索程序或第 一个搜索程序时应该执 行哪些查询。
监视、记录和统计数据
.用于监视、记录和统计数据的管理选项
菜单名
AdminURL
Statistics
http://localhost:8080/solr/admin/stats.jsp
Logging
http://localhost:8080/solr/admin/logging.jsp
Javaproperties http://localhost:8080/solr/admin/get-properties.jsp
Threaddump http://localhost:8080/solr/admin/threaddump
查询处理的各种配置选项
因素
描述 定义了可组合在一起形
maxBooleanClauses
成一个查询的子句数量 的上限。对于大多数应 用程序而言,默认的 1024就应该已经足够;
散加载的一个常见场景 大都发生在应用程序返 回和显示一系列搜索结 果的时候,用户常常会 单击其中的一个来查看 enableLazyFieldLoading 存储在此索引中的原始 文档。初始的显示常常 只需要显示很短的一段 信息。若考虑到检索大 型Document的代价,除 非必需,否则就应该避 免加载整个文档
复制
能够将使用rsync传输时改变的索引部分有效的发布(rsync是 类unix系统下的数据镜像备份工具) 使用拉策略(Pull Strategy)来简化增加搜索器 可配置的发布间隔能够允许对时间线和缓存使用进行权衡选择
管理接口
能够对缓存使用,更新和查询进行综合统计 文本分析调试器,能够显示每个分析器每个阶段的结果
储了多少词条,这个数值是在索引
过程中计算出来的,并且也存储在
索引中
coord(q, d) 协调因子,它的计算是基于文档d 中所包含的所有可供查询的词条数 量
ຫໍສະໝຸດ Baidu
queryNorm(q) 在给出每个查询条目的方差和后, 计算某查询的标准化值
初始化Document后,使用了Document的setBoost方法来改变一下文档的 boost因子。这种做法的实际目的是将文档的得分乘以这个因子,以这个 新的数作为文档的得分。
solrconfig.xml文件启动的事件侦听程序和几个shell脚本处理。在复制架 构中,一个Solr服务器充当主服务器,负责向一个或多个处理查询请求 的从服务器提供索引的副本(称为snapshot)。索引命令发送到主服务 器,查询则发送到从服务器。主服务器可以手动创建快照,也可以通过 配置solrconfig.xml的<updateHandler>部分来触发接收到commit和/或 optimize事件时的快照创建。
Namedcaches
命名缓存是 用户定义的 缓存,可被 Solr定制插 件所使用。
可以,如果实现了 org.apache.solr.search.CacheRegenerator 的话。
发布和复制
对于收到大量查询的应用程序,单一一个Solr服务器恐怕不足以满 足性能上的需求。因而Solr提供了跨多个服务器复制Lucene索引的机 制,这些服务器必须是负载均衡的查询服务器的一部分。复制过程由
搜索结果默认评分算法
Lucene默认得分公式的解释
因素
在公式中的作用描述
tf(t in d)
词条t在文档d中出现的词频
idf( t )
词条t在文档中的倒排词频
boost(t.field in d) 在索引过程中设置的字段参数
lengthNorm(t.field 字段的标准化值,表明在字段中存
in d)
智能缓存
智能缓存是让Solr得以成为引人瞩目的搜索服务器的一个关键性能特 征。例如,Solr在提供缓存服务之前可通过使用旧缓存中的信息来自热 缓存,以便在服务于现有用户的同时改进性能。Solr提供了四种不同的 缓存类型,所有四种类型都可在solr config.xml的<query>部分中配置。
根据在solrconfig.xml文件中所用的标记名列出了这些缓存类型:
缓存标记名
描述
能否自热?
filterCache
通过存储一 个匹配给定 查询的文档 id的无序 集,过滤器 让Solr能够 有效提高查 询的性能。 缓存这些过 滤器意味着 对Solr的重 复调用可以 导致结果集 的快速查 找。更常见 的场景是缓 存一个过滤 器,然后再 发起后续的 精炼查询, 这种查询能 使用过滤器 来限制要搜 索的文档 数。
基于WEB的查询和调试输出:解析查询输出,Lucene的 explain方法细节,能够解释为何某个文档打分低,被排除在结 果中等等
知识库目前搜索业务功能
多域搜索(多个搜索条件)
1) 地市:全省+11地市——目前只有11地市,没有“全省”选择; 2) 品牌:全球通、动感地带、神州行、其他品牌、省外移动; 3) 栏目:与知识库栏目目录树同步; 4) 关键字输入功能:如我输入了“金卡 干线”进行筛选搜索; 5) 文章标题、文章关键字、全文检索:放在关键字输入的后面,
的结果中(例如都是文章标题搜索出来的)结果得分相同时还 可以增加按文章点击量等实时条件进行排序,可能需要对结果 的多次处理需要数据库的配合; 6) 支持查询结果列表的二次检索及按各种条件的重新排序;
关键技术---搜索技术
图1 知识库系统框架示意图
用 户 界 面 知识搜索界面 知识管理维护界面
知 识 库
查询
拥有可配置响应格式(XML/XSLT,JSON,Python,Ruby)的 HTTP接口 高亮的上下文搜索结果 基于域值和显式查询的片段式搜索(Faceted Search) 对查询语言增加了排序规范(按配置域升序降序等排序) 常量的打分范围(Constant scoring range)和前缀式查询-没 有idf,coord,或者lengthNorm因子,对查询匹配的词没有数量 限制 函数查询(Function Query)-通过关于一个域的数值或顺序的 函数对打分进行影响 性能优化
排除发布故障
虽然已经竭尽全力地对索引更新的发布进行了优化,但还是有几个 常见的场景会为Solr带来问题:优化大型索引可能会非常耗时,而且应 该在索引更新不是很频繁的情况下才进行。优化会导致多个Lucene索 引文件合并成一个单一文件。这就意味者从服务器必须要复制整个索 引。然而,这种方式的优化还是比在每个从服务器上进行优化要好很 多。这些服务器可能与主服务器不同步,导致新副本再次被检索。如果 从主服务器中获取新快照的频率过高,则从服务器的性能可能会降低, 这种降低源于使用snappuller复制更改的开销以及在安装新索引时的缓 存预热。
可以
为查询、排
序条件和所 queryResultCache 请求文档的
数量缓存文 档id的有序 集合。
可以
documentCache
缓存Lucene Document, 使用内部 Lucene文档 id(以便不 与Solr惟一id 相混淆)。 由于Lucene 不可以 的内部 Document id可以因索 引操作而更 改,这种缓 存不能自 热。
Schema(模式)
定义域类型和文档的域 能够驱动智能处理 声明式的Lucene分析器规范、 动态域能够随时增加域 拷贝域功能允许对一个域进行多种方式的索引,或者将多个域 联合成一个可搜索的域
显式类型能够减少对域类型的猜测 能够使用外部的基于文件的停用词列表,同义词列表和保护词 列表的配置,过滤器配置
以三个勾选框的形式出现(即现在搜索中“历史”那里那 样),默认为“全文检索”选中,结果为正常的文章; 6) 搜索条件默认添加当前浏览人员两维浏览权限信息。
搜索结果统一展示
搜索结果列表中展示内容为,文章标题(链接形式)、文章静态摘要、 文章目录路径
1) 最上排保留所有域搜索条件,且记忆点击搜索时的选项; 2) 搜索结果如下后面增加“正常”“历史”按钮,同时搜索出正
Make a Query提供了调试查询所需的快捷界面以及到功能更加全面的查 询界面的链接。 MakeaQuery部分提供了可输入查询并查看结果的搜索框。这个输入框 接受Lucene查询解析器语法,而Full Interface链接则提供了对更多搜索 特性的控制,比如返回的结果的数量、在结果集中应该包括哪些字段以 及如何格式化输出。此外,该界面还可用来解释文档的计分以更好地理 解哪些条件得到了匹配以及这些条件是如何得分的。 Assistance提供了到外部资源的有用链接以便理解和解决使用Solr可能 遇到的一些问题。
核心
可插拔的查询句柄(Query Handler)和可扩展的XML数据格 式 使用唯一键的域能够增强文档唯一性 能够高效地进行批量更新和删除 用户可配置的文档索引变化触发器(命令) 并发控制的搜索器
能够正确处理数字类型,从而能够进行排序和范围搜索 能够控制缺失排序域的文档 支持搜索结果的动态分组
缓存
可配置的查询结果,过滤器,和文档缓存实例 可插拔的缓存实现 后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将 它热启,避免第一个结果慢下来,当热启时,当前搜索器处理 目前的请求 后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索 器中再次生成,能够在索引器和搜索器变化的时候高速缓存常 查询的结果 快速和小的过滤器实现 支持自动热启的用户级别的缓存
搜索引擎技术方案
加强企业级搜索方案Solr
一个真正的拥有动态域(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema) 对Lucene查询语言的强大扩展 支持对结果进行动态的分组和过滤 高级的可配置的文本分析(各种数据源解析),强大的全文检 索功能,高亮显示检索结果,动态集群,数据库接口和电子文 档(Word,PDF等)的处理 高度可配置和可扩展的缓存机制 性能优化配置化解决 支持通过XML进行外部配置 拥有一个管理界面及可监控的日志 支持高速增量式更新(Fast incremental Updates)和快照发布 (Snapshot Distribution),Solr服务器通信使用标准的HTTP 和XML
录入组件 审核组件 知识抽取组件 知识库优化组件 推理组件
查询方案 生成组件 检索引擎 访问组件 查询结果处理
知识库
处理组件 查询结果统一展示 展示组件 检索 模块
中文 分词 组件 查询 分析 组件 语义 理解 组件 客服知识词库 客服规则库 语义 理解 模块
系统采用企业级搜索解决方案Solr的改进版[搜索功能加强]。Solr 底层的核心技术是使用Apache Lucene来实现的,简单的说Solr是 Lucene的服务器化。Solr并不是简单的对Lucene进行封装,它所提供 的大部分功能都区别于Lucene,它支持层面搜索、命中醒目显示和多 种输出格式。
搜索结果的的二次排序
由于存在查询结果的缓存,因此可以对查询结果进行二次处理, 可以按照某个域的升序或降序排序(例如按审核日期的降序排列,按点 击量的降序排列等等);如果处理这些缓存数据比较难受(对于应用来 说),还可以结合具体业务,配合数据库查询来对查询结果进行进一步 的处理。以前全文检索中是索引的是知识点内容而检索出的是文章内 容,知识点和文章之间存在关系,首先搜索索引文件缓存知识点编号, 然后根据文章与知识点编号在数据中重新查询去除重复、重新排序、分 页等。
相关文档
最新文档