solr 对网站域名的搜索技巧应用(续)

     早几天写的文章那里,对域名的搜索那里 http://kernaling-wong.iteye.com/blog/2212191 ,这几天经过实践,有了新的认识所以想补充一下.

 

      简单说说上个文章表达的,其实就是对域名进行搜索,比如输入it.com ,则不希望出现类似 it.com.cn 这样的域名, 只会搜索出  xxx.it.com 这样的域名.

      我上个文章说   把域名进行反转,比如索引 www.it.com 则索引成  moc.ti.www (索引按 solr 说法,不是 onText 而是 string 类型, 按 lucene 说法则是  stringField 而不是 textField 了.) ,然后搜索也反转成这样,最后通过前缀匹配. 则可以满足其要求.

 

      但最近这几天实践,发现这样有一个严重的问题.比如现在有  www.hao123.com 这一个域名, 但我搜索 123.com 其实一样能搜索出来的. 而自己细想了一下,这个的确也是能搜索出来.因为只是匹配而已,并没有识别出是否整体地被匹配了.

      所以其实我上个文章写的那种方式就是出现这一个问题了.我后来试想了一个办法.既然可以前缀匹配了,那是不是可以把这一个域名的字段变成 onText 然后按 term 这样子位置整体前缀匹配呢?

 

      1 .  www.hao123.com    =反转域名后=>   moc.321oah.www 然后按 term分词后变成 moc , 321oah ,

      2 .  然后我想通过前缀匹配 + 搜索短语,类似搜索语法是 :  "moc.321oah.www"*

      3.  经过实验和测试,这种方式不行,看来前缀匹配只能匹配每一个 term 但不按类似短语这样子匹配起来.

 

       这几天,一直都忙着这一个事情,又看源码,又找相关资料,这种方式,最后还是不行的.

 

      最后,我的上司建议我通过一种比较取巧的办法,因为现在数据主要还是国内的数据,域名基本上就是  .com.cn ,  org.cn , net.cn , com.hk 之类几种域名,所以我们在分词那里做一个改动,就是把这类域名的,就作为一个词了 ,即 www.it.com.cn 分词后变成  www  ,  it  , com.cn  就这三个,这样就能解决上面的问题了.,而且改动也不大. 在索引的时候,对新的数据,另外开了新一个索引字段,然后 使用了新的分词,旧的字段依然存在,也使用以前 的分词方式,这样就能保证了旧的数据也能搜索出来,新的数据也可以搜索出来了,兼容了新旧数据.

 

       经过前几天, 觉得自己还要非常多地方要学习. 加油吧.

 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值