Talk is Cheap, Show me the Code! <<网站首页文章列表

  • 搜索引擎进阶——关键字预处理模块

    前言在搜索引擎的两个阶段会用到分词功能,分别是索引和查询。先说一下个人在垂直搜索引擎常用的索引分词设置(针对IK分词器)。无论采用何种分词设置,都会有一定的局限性或者说缺陷。因此在合适的阶段选择适合业务场景的分词方式才是最重要的。 索引阶段IK分词器提供了两种分词模式,通过布尔变量useSmart来设置。我在索引阶段设置useSmartfalse,其含义就是采用最小粒度分词,即会分出最多的可能的词汇(包括分词歧义词汇)。比如短语“中华人民共和国”的分词结果就是:中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、共和、国。可以看出来,这个模式下分词器会将词库中有的词全部分出来。其中“华人”这个词在短语中属于歧义词,在这个语境中是不合适的。之所以选择这个模式,是因为在索引的时候尽可能的建立更多分词的倒排索引关系链,这与全文检索的“一次索引,多次查询”的特点有关。对于这个短语来说,除了“华人”之外的其它分词能搜索到这个短语,都是合理的场景。 查询阶段我在查询阶段(也就是用户输入关键字查询结果中的分词阶段),设置了useSmarttrue。其含义是IK分词器会用其智能分词功能给你最合适的分词结果,一般来说是词语最少的结果,但是它能最大程度保留原短语的语境含义。比如短语“中华人民共和国”的分词结果就是:中华、人民共和国。这两个词就最大程度保留了语境含义,而且其输入能完美映射到索引阶段。对于,索引中出现“中华”和“人民共和国”两个词语相距很远的情况,可以通过设置查询跨度来过滤。"中华人民共和国"~2,这里的2是指两个双引号之间的短语,各个分词的起始位置之间的最大允许间隔。 在Solr的schema.xml的配置xml

    Solr   Java   分词   字典树   搜索引擎   2019-07-24 浏览(247) 阅读原文>>
  • 1 
    blogTest
    分享文章
     
    使用APP的"扫一扫"功能,扫描左边的二维码,即可将网页分享给别人。
    你也可以扫描右边本博客的小程序二维码,实时关注最新文章。