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

news/2024/5/10 14:38:41/文章来源:https://blog.csdn.net/iteye_5348/article/details/82619232

      菜鸟级文章,高手请绕道.

      基本事情背景是这样, 在公司的抓取回来的数据中,都有大量的来源不同网站的域名.这时用户可能只对某几个来源网站感兴趣,或者对某几个来源网站不感兴趣之类,以前的版本中,只对网站域名做了非常简单的分词,基本上可以认为是对 www.it.com.cn 之类的网站,通过 "." 把域名拆开,然后索引.这样用户在搜索某几个域名的网站,直接就可以匹配到了.

    但这样形式在最近用户提出的问题中需要处理了. 原来当时我们理解用户的要求有点偏差,其中主要是集中两个问题

 

    1.  比如用户搜索来源于 www.it.com 这个网站, 但搜索出来 www.it.com.cn 这样的网站了. 但用户并不希望它出现.

     2.  另外有一些来源网站有N多个二级域名例如 iteye.com 这一个网站,都以用户名作为二级域名了, 这样用户在希望关注 iteye.com 的文章的时候,自然只输入搜索域名 "iteye.com" 了,但却出现了非常多其他第三网站如: iteye.abc.com ,  iteye.archve.com 之类的非法的网站.

 

     上面说了这么多,其实根本就是出现在分词那里,因为对了域名做了普通的 term 的分词,所以这样子搜索其实根本不能保证哪个关键字出现的前后次序. 最好最理想的办法就是把输入域名,通过从最后匹配上来,

     简单来说就是

                输入   iteye.com  那么匹配中,从最后面开始往前匹配. 这样肯定就能保证到域名的匹配了.

       但,问题就是 ,  lucene 或 solr 似乎都没有这样子的匹配方法,前缀匹配倒有一个 prefixQuery 之类的.

      然后我也尝试用了 正则匹配之类的 , 还有那个 wildCard 也用了一下,但似乎还不能满足这一个需求.

 

      最后,其实可以反过来想.  直接使用了 prefixQuery 就可以了 , 前提条件就是把那个 domain 那个索引类型改了一下,从之前的 onText 改成 string 类型,同时把输入的域名进行反转,这样就可以使用了

     具体如下:

         1.   在索引提交索引的过程中, 比如 本来要索引的是 baidu.com  则转换一下,变成 moc.udiab .

               转换代码如下:

    

     2.  其次,  每次当用户输入的索引,也进行这一个域名反转的处理. 使用前缀搜索处理则可. 可以完美匹配出域名,二级域名,指定搜索某一个域名之类的操作.如果在 solr 中,如果只要 baidu.com 这一个网站的的话,则可以搜索  domain:moc.udiab*  这样子则可 ,这样的小技巧应用非常实在.

 

       结语:  从上一遍文章到现在已经隔了快1年没写文章了,一直都心里打算着要写点技术文章之类的,很希望一直能深深钻研技术类, 当然是往更底层,更核心的方向去向,比如大数据的hadoop,hbase 中,在现在工作上的应用使用hadoop , hbase 之类,其实越用越感觉自己只是 hadoop 的一个使用者而已,就算优化得非常好,也仅仅是一个高级的使用者而已,因为里面的核心比如 存储形式,并发运算等核心都是别人的, 自己用得再好,也只是一个使用者. 要打破这些,唯有自己学习里面的核心比如算法还有 hdfs 之类的存储形式,能有自己的实现方式才是根本.

      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_893068.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何做公众号SEO,公众号排名优化呢?

SEO也就是搜索引擎优化,简单点说就是搜索排名优化。也就是当用户搜索某一些关键词时,就会看到你的文章或者帐号排在前几位,做SEO其实就是为了提高排名,获取精准垂直流量。 要做公众号排名首先要知道两个重点,一是关键词…

大型网站架构演化发展历程

1.大型网站软件系统的特点 与传统企业应用系统相比,大型互联网应用系统有以下特点。 (1)高并发,大流量;(2)高可用;(3)海量数据;(4&a…

大型网站架构技术一览

网站系统架构层次如下图所示: 1.前端架构 浏览器优化技术、CDN、动静分离、静态资源独立部署、图片服务、反向代理、DNS。 2.应用层架构 开发框架、页面渲染、负载均衡、Session管理、动态页面静态化、业务拆分、虚拟化服务。 3.服务层架构 分布式消息、分布式服务、…

2-13 搭建LAMP环境并部署Ucenter和Ucenter-home网站

环境: VMware Virtual Machine : XGan63.cn IP: 192.168.31.63 (Bridge) 已配置本地yum源 ---> /mnt 已配置网络yum源 ---> http://mirrors.aliyun.com 安装前确保环境干净,避免软件冲突造成影响 检查环境: which httpd #查看是否安装httpd服务 chkconfig --list httpd…

大型网站架构心得之一:分

我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分: 首先是横向的分: 1…

PC文件在线互传网站推荐

大文件: U盘或者移动硬盘才是首选,没有条件才用此下策 轻松传 - 传文件,传文本,传屏幕,传实时视频https://easychuan.cn/ 无需上传,直接下载,这是它的优点。使用edge亲身体验有个bug&…

IE浏览器提示网站还原错误

win 10 系统IE(Internet Explorer)浏览器提示网站还原错误,报错图如下 : 网上找了很多的方法,重置浏览器设置,降低自定义安全级别,添加受信任站点、禁用加载项、清除历史缓存记录等皆无用。 一、解决方法 1.此电脑--…

Java web 小白学习日记(4)—— 本地端的第一个网站

本篇内容续 小白日记(3) 本地端的第一个网站 目录 1)web工程的创建,如下图 2)若要调入图片,在本地找到该工程的工作空间,在WebRoot目录下创建images目录(默认名为images&#xff…

Java web 学习日记(5)——云服务器端的第一个网站

本篇内容续 小白日记(4) 也可直接食用 云服务器端的第一个网站 目录 1)选中我们要使用的web工程,点击file菜单中的export 2)选择Java EE 中的 WAR包格式,点击next 3)步骤如图 4&#xff0…

linux云服务器部署springboot网站 jar包部署过程

首先对我们的项目进行打包,可以直接输入命令 mvn clean package 如果遇到过程test报错 可以选择右侧maven任务栏里的闪电图案,跳过test 使用filezilla连接我们的服务器,将jar包上传到指定文件夹 使用putty登录云服务器 一些命令介绍 cd /us…

java web项目部署云服务器实现外网访问网站

本文为学习经验分享,水平有限,若有问题还请多多包涵,多多交流。 目录 一、租用云服务器 二、配置云服务器 三、Mysql安装与配置 四、JDK的安装(重要) 五、Tomcat 的安装与部属(重点) 六、…

VS 发布网站的配置

此配置发布为已经编译的网站,并且不可查看源代码。 

一个图标下载网站(自用)

地址:http://www.iconfont.cn/collections/detail?cid29

国外免费Icon图标下载网站大全(共55个网站)

Icon 图标通常应用于对系统的美化和应用程序的UI设计中。但是随着Web2.0的大潮兴起,大而醒目的设计元素也日趋流行。你完全可以把图标应用到网站设计 中,比如菜单栏图标、分类图标等。现在,帕兰映像为你收集整理了下面50多个国外的免费Icon图…

14个超棒的带有故事趣味性视差滚动网站

随着css3属性的广泛支持,越来越被设计师所青昧 ,常常可以创造出惊人的网站作品出来,特别是视差滚动的出色表现。关于视差滚动在实现方面,在之前的文章中《利用JARALLAX实现超强视差滚动网页效果》也为大家介绍了一个小插件的实现方…

Asp.net 2.0 中将网站首页生成静态页的一个比较好的方法

做网站时,有时为了提高性能会将网站首页生成静态页(当然, Asp.net中页面缓存也是一个不错的选择了将页面生成静态的方法有多中,据不完全统计有N种(N>1)呵呵以下的方法来自 "孟子E " 解释的方法 代码如下 protected override void Render(HtmlTextWriter writer) …

抓取一个网站特定的全部图片(JAVA)

1. 目的 用五笔时,如果碰到不会拆的字,只好换回拼音。但这样做治标不治本,于是到网上找五笔反查工具。最后发现一个不错的网站——不仅有每个字对应的五笔码,还有其字根图。可惜的是,这是一个网站。换句说,…

轻松完成网站提速:来自Google、淘宝等的Nginx PageSpeed模块

mod_pagespeed于2010年发布,让网站管理员可以为其Web应用提速,而不需要深度的性能优化造诣。mod_pagespeed最初版本只作为Apache的模块,并不兼容Nginx这个最流行并为许多大型站点所使用的高性能开源网络服务器。如今Nginx的PageSpeed Beta版终…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

高性能网站架构设计之缓存篇(5)- Redis 集群(上)

转自:http://www.cnblogs.com/zhaoguihua/p/redis-005.html 集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数…