我的solr学习笔记--solr admin 页面 检索调试
前言
Solr/Lucene是一个全文检索引擎,全文引擎和SQL引擎所不同的是强调部分相关度高的内容返回,而不是所有内容返回,
所以部分内容包含在索引库中却无法命中是正常现象。
多数情况下我们建议优化分词器或者引擎其它部分达到预期检索效果。
分词器调节
按照如下步骤进入分词器调试界面

1、选择collection
2、选择analysis菜单
3、在索引框中输入要索引的文档
4、在检索框中输入要检索的词语
5、选择需要调试的字段,这里假设要将内容索引到title字段,并且在该字段上检索
6、点击分析按钮
7、在展示出来的原文分词结果(左侧)和关键词分词结果(右侧)中对比最下面一行,若右侧分词结果的所有词在左侧都能找到,那么在AND关系的检索时能够匹配;若部分能够找到,那么在OR关系的检索中能够匹配;若完全找不到,那么无法匹配。
检索调节
准备数据
索引一条记录,id=1,title=中华人民共和国来做调试

直接检索无法出结果问题
直接检索中华人民共和国

从上图看(图可放大),最终检索结果被解析成了”+text:中 +text:华 +text:人 +text:民 +text:共 +text:和 +text:国”,因为我们在q的输入框中没有输入检索字段,所以solr会检索默认字段”text”,而该字段不包含我们需要的信息,所以检索无结果。

输入正确的字段title后,可以成功检索出来
部分匹配无法出结果问题
原文中华人民共和国分词后:中华、人民、共和国
搜索词中华解放军分词后:中华、解放军
部分匹配,我们也希望检索出来

从上图看(图可放大),最终检索结果被解析成了"+title:中 +title:华 +title:解放 +title:军",加号(+)标识逻辑与关系,相当于检索"title:中 AND title:华 AND title:解放 AND title:军",因此无法检索出来

修改默认逻辑关系(q.op=OR)为OR后,分此后的检索式加号没了,是逻辑或关系,因此能够成功检索出来。这里OR一定要大写。
这个默认检索关系可以通过修改schema.xml的defaultOperator进行配置
<solrQueryParser defaultOperator=”OR”/>
多关键字检索无法出结果问题
有时候用户会用空格输入多个关键字进行检索,如title:中华 人民 共和国

通过开启debugQuery参数,我们看到,最终检索结果被解析成了
+(+title:中 +title:华) +(+text:人 +text:民) +(+text:共 +text:和 +text:国)
中华是在title上检索的,后面的词都到text字段检索了

通过指定默认字段df为title,可以修正最终检索式,从上图看,修正后结果可以正常检索返回。
其它
以上是一些常见数据召回问题。
检索调优是搜索引擎使用中最复杂的过程,需要在长期实践中积累经验,同时需要了解数据情况,业务特点等多方面根据情况进行调整。
Solr web服务器管理界面用法
http://www.devnote.cn/article/38.html
这里列举一些常用的比较重要的内容。
Dashboard(仪表盘)
访问主页,http://你的域名或ip/solr/,默认显示此页内容,包含solr版本,包含系统内存和jvm内存的使用情况,jvm参数等

Logging(日志)
可以用来查看solr运行是否有警告或者异常,以便及时处理
Core Admin(索引库管理)
这个界面很重要,这使多核的配置,索引库的优化等,变得非常简单;
主要功能包括:Add Core(添加核心,即索引库),Unload(卸载核心),Rename(重命名核心),Optimize(优化索引库)。如我这里是两个核心。

Java Properties(java属性)
java及tomcat的一些属性 
Core Selector(核心选择器,这里以collection1为例) 
- Overview(概览):包含基本统计如当前文档数;和实例信息如当前核心的配置目录;

- Analysis(分析):检验分词效果,如图,分词后“开发”将被高亮(注意FieldType需要选定为与被分析内容类型一致,如这里的title配置了中文分词)

- Config(配置):当前核心的配置,即solrconfig.xml的内容
- Query(查询):这是一个查询界面,用的比较多,用来查询索引的文档,包含是否存在,排序是否正确等。

- Schema(当前索引库定义),即即schema.xml的内容
安全:因为此界面涉及到位solr增减核心等管理操作,在实际产品上运行时,尽量设置禁用在公网上(通过ip或者域名)的访问,需要使用时再临时打开。
我的solr学习笔记--solr admin 页面 检索调试的更多相关文章
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- Solr学习笔记之2、集成IK中文分词器
Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...
- Solr学习笔记之5、Component(组件)与Handler(处理器)学习
Solr学习笔记之5.Component(组件)与Handler(处理器)学习 一.搜索篇 拼写检查(spellCheck) 作用:用来检查用户输入的检索内容是否存在,如果不存在则给它提示出相近或相似 ...
- Solr学习笔记之4、Solr配置文件简介
Solr学习笔记之4.Solr配置文件简介 摘自<Solr in Action>. 1. solr.xml – Defines one or more cores per Solr ser ...
- solr学习笔记-入门
solr学习笔记 1.安装前准备 solr依赖java 8 运行环境,所以我们先安装java.如果没有java环境无法启动solr服务,并且会看到如下提示: [root@localhost solr- ...
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- thinkphp学习笔记3—项目编译和调试模式
原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...
- Solr学习笔记-在Tomcat上部署执行Solr
上一篇我们初识了Solr而且学习了Jetty的启动方式.查看了Solr的管理界面,这一篇我们来实如今Tomcat上部署执行Solr. 部署环境: window7 jdk1.6.0_14 Solr-4. ...
随机推荐
- a标签 在新页面打开
<a href="https://www.baidu.com/" target="_blank">下载</a>
- Qt532_WebKit_SSL问题
1.打开网页"http://www.baidu.com",它会跳转至"https://www.baidu.com/",使用 SSL了,于是 WebView 出现 ...
- IntelliJ IDEA自定义类和方法注解模板
现在Java开发主流工具应该是Intelij Idea 方便快捷. 本文将主要介绍如何用Intelij Idea配置类及方法的注释模板提高代码注释效率 1. 配置类注解模板 找到配置页面 File - ...
- 《高级Web应用程序设计》课程学习(20170911)
一.课程内容 本学期课件,点击查看 二.作业相关 上交作业的方法 访问ftp://192.168.42.254:22,登录后找到自己的姓名文件夹,放入作业即可.登录账号为stu1,密码为空 作业列表, ...
- IOS-如何优雅地拦截按钮事件(判断是否需要登录)
关于这个标题,起因是这样的. 最近一次做项目需求时,遇到这样一个需求,就是本来我们App是必须注册或者第三方登录才可以使用,现在希望不登录也可以浏览App里面的内容,只是在需要的时候才提示登录,并且在 ...
- IOS-网络(监听网络状态)
// // BWNetWorkTool.h // IOS_0131_检测网络状态 // // Created by ma c on 16/1/31. // Copyright © 2016年 博文科技 ...
- Deploying Qt or how to avoid “could not find or load the Qt platform plugin”
(转自:http://www.tripleboot.org/?p=138) Once you’ve built your first Qt program, have you tried it on ...
- jacoco生成覆盖率
要统计自动化的覆盖率,所以临时看了下jacoco,记录下过程.后续用的时候方便查看. 1.build.gradle中修改 apply plugin: 'jacoco' android { buildT ...
- Alpha冲刺一 (9/10)
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10034872.html 作业博客:https://edu.cnblogs.com/campus ...
- mac终端下修改MySQL的编码格式--找不到my-default.cnf及my.cnf
首先请确认正确安装好MySQL. 1- 先配置环境变量path 1.1 打开终端,输入: cd ~ 会进入~文件夹, 1.2 然后输入:touch .bash_profile 回车执行后, 1.3 再 ...