为什么检索条件多了一个字就搜不出文章了---易览资讯
为什么检索条件多了一个字就搜不出文章了---易览资讯
west_coast 发表于4个月前
为什么检索条件多了一个字就搜不出文章了---易览资讯
  • 发表于 4个月前
  • 阅读 16
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

一。问题

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

二。调查

  先做一个测试:

  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个:信息化、信息、化、扶贫在上排能找到,但是最后一个分词“示“在上排找不到,所以是检索不出文章的。

 

 

    

 

 

 

共有 人打赏支持
粉丝 0
博文 27
码字总数 8112
×
west_coast
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: