设为首页 收藏本站
查看: 1169|回复: 0

[经验分享] solr 对网站域名的搜索技巧应用

[复制链接]
发表于 2016-12-16 11:10:07 | 显示全部楼层 |阅读模式
  菜鸟级文章,高手请绕道.
  基本事情背景是这样, 在公司的抓取回来的数据中,都有大量的来源不同网站的域名.这时用户可能只对某几个来源网站感兴趣,或者对某几个来源网站不感兴趣之类,以前的版本中,只对网站域名做了非常简单的分词,基本上可以认为是对 www.it.com.cn 之类的网站,通过 "." 把域名拆开,然后索引.这样用户在搜索某几个域名的网站,直接就可以匹配到了.
  但这样形式在最近用户提出的问题中需要处理了. 原来当时我们理解用户的要求有点偏差,其中主要是集中两个问题
  1.  比如用户搜索来源于 www.it.com 这个网站, 但搜索出来 www.it.com.cn 这样的网站了. 但用户并不希望它出现.
  2.  另外有一些来源网站有N多个二级域名例如 iyunv.com 这一个网站,都以用户名作为二级域名了, 这样用户在希望关注 iyunv.com 的文章的时候,自然只输入搜索域名 "iyunv.com" 了,但却出现了非常多其他第三网站如: iteye.abc.com ,  iteye.archve.com 之类的非法的网站.
  上面说了这么多,其实根本就是出现在分词那里,因为对了域名做了普通的 term 的分词,所以这样子搜索其实根本不能保证哪个关键字出现的前后次序. 最好最理想的办法就是把输入域名,通过从最后匹配上来,
  简单来说就是
  输入   iyunv.com  那么匹配中,从最后面开始往前匹配. 这样肯定就能保证到域名的匹配了.
  但,问题就是 ,  lucene 或 solr 似乎都没有这样子的匹配方法,前缀匹配倒有一个 prefixQuery 之类的.
  然后我也尝试用了 正则匹配之类的 , 还有那个 wildCard 也用了一下,但似乎还不能满足这一个需求.
  最后,其实可以反过来想.  直接使用了 prefixQuery 就可以了 , 前提条件就是把那个 domain 那个索引类型改了一下,从之前的 onText 改成 string 类型,同时把输入的域名进行反转,这样就可以使用了
  具体如下:
  1.   在索引提交索引的过程中, 比如 本来要索引的是 baidu.com  则转换一下,变成 moc.udiab .
  转换代码如下:
DSC0000.png

  2.  其次,  每次当用户输入的索引,也进行这一个域名反转的处理. 使用前缀搜索处理则可. 可以完美匹配出域名,二级域名,指定搜索某一个域名之类的操作.如果在 solr 中,如果只要 baidu.com 这一个网站的的话,则可以搜索  domain:moc.udiab*  这样子则可 ,这样的小技巧应用非常实在.
  结语:  从上一遍文章到现在已经隔了快1年没写文章了,一直都心里打算着要写点技术文章之类的,很希望一直能深深钻研技术类, 当然是往更底层,更核心的方向去向,比如大数据的hadoop,hbase 中,在现在工作上的应用使用hadoop , hbase 之类,其实越用越感觉自己只是 hadoop 的一个使用者而已,就算优化得非常好,也仅仅是一个高级的使用者而已,因为里面的核心比如 存储形式,并发运算等核心都是别人的, 自己用得再好,也只是一个使用者. 要打破这些,唯有自己学习里面的核心比如算法还有 hdfs 之类的存储形式,能有自己的实现方式才是根本.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315132-1-1.html 上篇帖子: 用solr的facet实现聚合标签(转载) 下篇帖子: Solr配置数据列时大小写问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表