文档章节

为什么检索条件多了一个字就搜不出文章了---易览资讯

west_coast
 west_coast
发布于 2017/08/09 11:48
字数 833
阅读 24
收藏 0
点赞 0
评论 0

一。问题

   在易览资讯中输入关键字有时候检索不出文章,但是文章标题和内容中确实有这几个字。

二。调查

  先做一个测试:

  1.在solr中检索条件输入 title:信息化扶贫,注意这里没有引号。

  2.打开调试模式

  3.在图中(可放大)第3个步骤看到,solr将检索条件分词,solr的中文分词工具是IKAnalyzer;

最终检索结果被解析成了"+title:信息化 +title:信息 +title:化 +title:扶贫",加号(+)标识逻辑与关系,相当于检索"title:信息化 AND title:信息 AND title:化 AND title:扶贫"。

意思即为:如果一篇文章的标题分词中包括信息化、信息、化、扶贫这几个词,注意是全部包括,则该篇文章可以被检索出来。而不是我们通常理解的如果一篇文章标题中有这几个字,solr就必须搜出来。

4.检索结果

  结果有9条。

     

三。易览资讯的检索

  还是使用“信息化扶贫”来举例。

 1. 易览资讯在后台使用solrj来操作solr.

  2.在检索的相关代码中使用了引号将查询条件包裹起来。例如:title:"信息化扶贫" ||APPC:"信息化扶贫"。加入引号意味着检索条件是一个紧密连接的整体,中间不能有隔断。

3.检索

检索结果有6条。

剔除了“工业和信息化部举行庆祝中国共产党成立96周年大会暨扶贫工作先进事迹报告“ 这样的结构。

从图中可以看到solr依然将检索条件分词,只不过这些分词全部连在一起。

 

  4.检索条件变成“信息化扶贫示”

 1)预期效果:应该会把“山亭区冯卯镇信息化扶贫示范镇建设项目招标公告” 这些类似的文章检索出来

  2)但是,检索结果:0条。

  3)从图中可看出solr将检索条件分词为:信息化、信息、化、扶贫、示。

5.为什么检索条件多了一个字就搜不到文章了

1)Solr/Lucene是一个全文检索引擎,全文引擎和SQL引擎所不同的是强调部分相关度高的内容返回,而不是所有内容返回,所以部分内容包含在索引库中却无法命中是正常现象。

2)真正的原因:分词

  •    使用solr提供的分词器进行调试
  •    如图,在索引框中输入要索引的文档:山亭区冯卯镇信息化扶贫示范镇建设项目招标公告
  •     在检索框中输入要检索的词语:信息化扶贫示
  •     点击分析按钮
  •     原文档和检索条件的分词分为上下两排排列。
  •   若下排分词结果的所有词在上排都能找到,那么在AND关系的检索时能够匹配。在本例中,检索条件解析出来的5个分词中有4个:信息化、信息、化、扶贫在上排能找到,但是最后一个分词“示“在上排找不到,所以是检索不出文章的。

 

 

    

 

 

 

© 著作权归作者所有

共有 人打赏支持
west_coast
粉丝 0
博文 44
码字总数 12001
作品 0
济南
程序员
如何搭建一个站内搜索引擎(一) 第1章 写在最前

搜索引擎,对很多人来说,熟悉又陌生。熟悉,是因为每个人每天都能接触到,比如百度、google、淘宝内部搜索;陌生,是因为鲜有人了解他的原理。 因为工作需要,有幸参与负责了一个站内搜索的...

jungleliu0923 ⋅ 2014/02/10 ⋅ 6

PostgreSQL的模糊查询问题,不是正常的单词查不出来

用一下的语句进行模糊查询时,速度很慢。 select * from myTable where myCol like '%adghj%' 在网上搜了半天,唯一有可能有帮助的好像就是全文检索了。 可是,试了下全文检索,好像只能支持...

wsg ⋅ 2012/04/05 ⋅ 3

Lucene4.3进阶开发之礼敬如来(十三)

评分功能,在全文检索中也算是一个非常重要的模块,因为评分的好坏,直接决定着用户搜索匹配的相关性,试想一下假如用户输入了一个搜索词,搜索引擎返回了一大堆不相关的信息,或者没有层次性...

heroShane ⋅ 2014/02/21 ⋅ 0

牛!能临摹的写字机器人,甭管整齐或潦草,都能一模一样的给你写出来!

智能机器人提笔写字,惊呆美女记者! 近日,在第十二届河南投洽会上,一款智能机器人吸引了美女记者的注意。你写字他临摹,甭管整齐或潦草,这款机器人都弄的一模一样给你写出来。 记者也体验...

智搜资讯 ⋅ 06/07 ⋅ 0

闲谈团队的代码质量

定义代码质量 首先当你开始意识到项目里代码质量差的时候,恭喜你已经有了代码审美。这是推进编程水平的重要的一步。很显然,如果你不知道什么是差的代码,你就写不出好的代码。写不出好的代...

没故事的卓同学 ⋅ 2017/09/17 ⋅ 0

追求代码质量 —— 闲谈团队的代码质量

定义代码质量 首先当你开始意识到项目里代码质量差的时候,恭喜你已经有了代码审美。这是推进编程水平的重要的一步。很显然,如果你不知道什么是差的代码,你就写不出好的代码。写不出好的代...

局长 ⋅ 2017/09/18 ⋅ 7

MySQL必知必会(2):数据检索(SELECT)

本文介绍Mysql开发中使用最频繁的功能,SELECT数据检索 简介 检索数据是从数据库中使用特定语句获取页面需要的数据。每天你上网浏览的网页,绝大部分数据都是从数据库中检索出来,所以它也是...

星空幻颖 ⋅ 2017/01/09 ⋅ 0

1.1 擦肩而过

独角戏 “当你认真谈过一段感情,最后却分手了,后来你会很难再去喜欢别人,你不想花时间也不想去了解。就好比你写一篇文章快写完了,但老师说你字潦草把作业撕了让你重新写一遍。虽然你记得...

仇诺伊 ⋅ 2017/09/26 ⋅ 0

写作软文_活动软文写作_微博软文写作_品牌软文写作|Giiso智搜

在国外写稿机器人令人赞叹时,国内也有公司自己研发了写稿机器人。那就是Giiso智搜作为中国领先的“人工智能+资讯”领域的顶级高新技术企业,其自主研发的写作机器人,是可以从各个行业领域快...

yanyanl ⋅ 06/13 ⋅ 0

文案编辑器,市场文案编辑,网络文案编辑-文案策划编辑

在国外写稿机器人令人赞叹时,国内也有公司自己研发了写稿机器人。那就是Giiso智搜作为中国领先的“人工智能+资讯”领域的国家级高新技术企业,其自主研发的写作机器人,是可以从各个行业领域...

wx5b18cf351f766 ⋅ 06/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 40分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部