知识库 : AjaxSolr—构建自己的solr应用界面

Edit Document

AjaxSolr —构建 自己的 solr 应用 界面

目录

1.               AjaxSolr 简介

2 AjaxSolr 使用

2.1 manager 管理器

2.2 结果显示与处理

2.3 关键字高亮显示

3 Solr 查询参数说明

 

1.   AjaxSolr 简介

S olr 服务能够 提供 完整 的前后台 搜索 服务 通常我们喜欢 使用 solr admin 页面完成 solr 的集群 管理,数据搜索, 数据 分析 等的任务 ,其实,我们也可以 利用 solr javascript API---AjaxSolr 来轻松 的建立一个 my -style solr 应用 界面

由于 AjaxSolr 仅需要 实现 solr 进行交互的 ajax 任务 所以 无论 开发任务使用 JQuery, MooTools, Prototype, Dojo 或者 任何其他的框架,都可以方便的嵌入 AjaxSolr

2 A j axSolr 使用

2 .1 manager 管理器

本文 JQuery 为例,简单介绍使用 AjaxSolr 实现 solr 引擎的对话

Ajax Solr 中包括以下文件:

 

 

对于 最基础的 应用 ,即 简单 的搜索应用我们可以引入下面的包

 

 

最初 ,我们需要 定义 一个 AjaxSolr Manager 类,作为 solr 的搜索管理器 ,其中 需要 的参数为 solrUrl 访问 索引的地址,通常格式为: http:// {hostip}:8983/solr/{indexname} ,如果 需要通过代理 url 访问 solr ( 相应 安全机制 ) ,这里也可以使用代理 url

 

 

 

接着 需要 管理器 Manager 进行初始化:

 

 

以及设置搜索参数:

 

 

上述 语句 使用 AbstractManager setStore 方法 ParameterStore 用于 添加查询 query 的值为 “* *” ,表示 需要搜索 所有的索引内容 ;具体 query 的格式将会在下一 中介绍。 使用 上述方法可以添加更多的搜索参数,如 rows ( 显示 行数 ) sort( 排序 方式 ) 等等

              设置 Manager 的各项 参数之后,可通过 do Request() 方法直接 执行搜索任务:

2 .2 结果显示 与处理

通过 上述操作便可以实现 调用 solr 接口 进行 查询 的任务, 但是 要获取检索结果 到界面上必须 继承 AbstractWidget

 

 

beforeRequest, afterRequest, template 方法 实现相应 的功能, 在初始化 Manager 向其添加 ResultWidget 的实例:

 

             

其中 target 搜索结果返回到页面要添加到的页面元素

 

 

afterRequest 方法中可获取检索获得的文档: this.manager.response.docs ,可从中取出每一篇文档使用 template 方法进行处理,用以在界面上以自己需要的方式显示出来。

 

 

到此 ,便可以完成一个简单的 solr 应用 界面,可实现 solr 引擎的查询 并进行 结果的展示功能。

2 .3 关键字高亮 显示

Solr 通过设置查询参数 获取 高亮显示的关键字, 这些 参数可以通过上述介绍的 Manager.store.addByValue 方式添加, 可实现 高亮的 具体 参数将在下一节中介绍 添加参数完成后 启用 solr 管理器 执行 查询,查询返回的结果 a fterRequest 的处理方式略有不同, 上述说明, 正常 的检索结果存储在 this.manager.response .doc ,而 启用 高亮的搜索结果 存储 this.manager.highlighting 因此 ,若要获得 高亮 的检索结果,需要从 this.manager.highlighting 获取 数据。

3 Solr 查询 参数说明

第二节 提高使用下面的方式为 solr 管理器 添加 搜索 参数, 这里 介绍一些常用的参数及其应用格式。

 

 

         q :查询 关键字,通常 格式 :“ 查询索引的字段名: 查询 关键字 ,若要 匹配所有文档可以使用符号“*:*” 赋值 给q, 同时 ,如果希望 solr 服务器对整个关键词不进行 切分 可以 使用“”将查询关键 包裹起来 如: title: “ 大数据 ,另外 ,若使用多个关键词进行检索,可使用() 关键词包裹,如:title: ( 大数据 ” OR /A ND “ 云计算 ”)

         rows: 搜索 结果 返回 文档 数量,用于界面显示时可 设定 一个固定值, 显示 固定数量的结果信息;

         start : 指定在搜索 到的所有结果中, 返回的第一 记录的偏移位置, 参数可以跟 rows 参数 配合 使用, 实现 在界面上的 分页 显示;

         sort: 搜索 结果的排序方式, 按照某字段升序或降序 排序,格式 为排序字段 + 空格 + 升序 / 降序 说明,如: publishtime desc /asc ,另外 ,可以使用搜索得分进行排序,如 score desc /asc

         wt: 指定搜索 结果的输出格式,如 json, xml

         fl : 查询 结果返回的字段 ( Feild ) ,例如 仅需要 获得 查询到的 结果 文档的标题,可指定 fl title

         fq : q 查询的结果进行进一步过滤,即在 搜索 结果中搜 索。

 

另外 solr 的参数可以 设置搜索 关键字的高亮显示 具体参数如下:

         hl : boolean 类型 ,设置为 true 表示启用查询结果的高亮显示;

         hl.simple.pre hl.simple.post :可设置 搜索 关键 前后的 css 样式,以 其在界面上突出显示, 设置 hl.simple.pre <em class="hlt1" style=”…”> 设置 hl.simple.post </em>

         hl.fl :设置 高亮显示出现的字段,如,包含有标题 title 和内容 content 两个 字段的索引,需要 title content 显示时同时高亮,就需要设置 hl .fl title content

Attachments:

AjaxSolr.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
AjaxSolr.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
AjaxSolr.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)