为什么检索条件多了一个字就搜不出文章了---易览资讯
2017-08-09 00:00
288 查看
一。问题
在易览资讯中输入关键字有时候检索不出文章,但是文章标题和内容中确实有这几个字。
二。调查
先做一个测试:
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个:信息化、信息、化、扶贫在上排能找到,但是最后一个分词“示“在上排找不到,所以是检索不出文章的。
在易览资讯中输入关键字有时候检索不出文章,但是文章标题和内容中确实有这几个字。
二。调查
先做一个测试:
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个:信息化、信息、化、扶贫在上排能找到,但是最后一个分词“示“在上排找不到,所以是检索不出文章的。
相关文章推荐
- 【翻译自mos文章】在一个使用uniform size的 本地管理的表空间中建立一个表,为什么会忽略INITIAL 参数?
- 一个好文章---为什么我会贫穷?
- 第一个文章,今天比较兴奋啊! 给大家一个关于SQL复合查询的文章(动态生成多个where条件)
- postgresql 存储过程 把一个表的部分数据插入另一个表中(条件:传入的某些参数作为检索条件并且可能为空值)
- 织梦文章的标题为什么多了一个<b>标签?
- 分析一个字符串生成相关查询条件,比如搜索相关文章的功能
- 返回值为什么不能作为重载的一个条件
- 该死的CSDN,为什么我有一个写了好几篇文章的blog用不了了
- Mongodb使用时用_id作为检索条件的一个问题
- 人不知道为什么要结婚,我的一个朋友忽然要结婚了,遇到一个家庭条件不错的男孩子,所以他们只认识了3天就定了酒席,她说结婚是为了完成任务。
- Word 2003中为什么修改一个段落的文章结果整篇文档的格式都变?
- 【郝斌数据结构自学笔记】53-56_一个函数为什么可以自己调用自己_递归必须满足三个条件_循环和递归的比较
- 首页所有文章资讯Web架构基础技术书籍教程我要投稿更多频道 » 为什么Java要把字符串设计成不可变的
- 为什么在有些文章末尾加一张收录截图?
- 计算机方面常用的文章检索网址
- 为什么未初始化的指针会指向一个不确定地址
- 为什么喜欢在 if() 条件判断中使用逗号操作符?
- 为什么一个概念会非常难懂呢?人是如何理解的呢?
- 为什么Mybatis可以通过SO加入查询条件
- 为什么Mac OSX一个程序不影响系统,而Win系统经常假死机半天没反应