【智慧师傅2月2日】 c,搜索基础知识(2)linux和正则表达式的入门(1)
由于今天白天朋友来访,所以今天没有跟师傅学太多东西,今天晚上还是学了c的一些基本知识,还学了一点linux的命令,这些都是很浅的东西,还看了一下搜索的基本知识,另外师傅还教了我一些关于正则表达式的基本知识,如果大家没看过后两个方面的,可以来看看。由于我什么基础都没有,所以只能把师傅的有些话记下来,以后可能会看懂。
我的上一个帖子在http://topic.csdn.net/u/20100201/22/3574e5c9-edbb-456f-a45c-a25c16e06700.html?26668
今天师傅的一些话:
查询的时候,准确率,基本都是靠分词来达到吗?还有没有其它的方式,比如:搜索的几种策略来提高覆盖率和准确率?
准确率 可以通过对文档加以权重来实现
我们实现了实时索引,分索引库就行了,搜索多个索引库,小库可以随时索引,大库定时跟小库合并,如果处于性能考虑 可以将小库放到内存里
师傅教导我的话:实践是出真知,孔子说过 学而不思则罔 思而不学则殆
所以以后我要多多实践了。
第一部分:Linux的入门(—)
1.linux快速入门
Linux文件系统 windows是以盘符为基础的,而且每一个目录都是与相应的分区对应,linux是以文件树为基础,且它的所有的文件或者外部设备都是以文件的形式挂接在这棵文件树上面
Linux中把每一个分区和某一个目录对应,以后在对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一,把分区和目录对应的过程就叫着挂载(mount),而这个挂载在文件树中的位置就是挂载点。
硬件分区是针对一个硬盘进行操作的,它可以分为:主分区,扩展分区,逻辑分区。
C盘 - /dev/hda1(主分区) D盘 - /dev/hda5(逻辑分区) E盘 - /dev/hda6(逻辑分区)
Swap交换分区
分区格式:windows 为 fat32. ntfs
Linux主要是 ext2,后来是ext3 支持很多分区格式
GRUB引导装入器 (类似嵌入式中bootloader),它负责装入内核并引导linux系统,位于硬盘开始部分。
(双系统是用linux的GRUB来引导装入器来启动windows或者linux)
Root权限 默认的主目录是/root下,普通用户在/home下
Linux的主要的文件类型分为四个部分:普通文件,目录文件,链接文件,设备文件
目录也是文件,他包含文件名和子目录名以及指向那些文件和子目录的指针。把文件和目录相对应起来,就构成了目录文件。在linux中每个文件都有一个唯一的数值,叫索引节点。索引节点存储在索引节点表(inode table)中。索引节点包含文件的所有信息。
链接文件类似与“快捷方式”
设备文件一般放在/dev这个目录下,它包括:块设备文件,字符设备文件
前者主要是数据的读写,后者主要是串行端口的接口设备
文件属性:可读(r),可写(w),可执行(x),文件有三种不同的用户组别:文件拥有者(u)
所属的用户组(g),系统的其它用户(o)
如果没有权限一般用_来表示
Linux把fat文件系统都称为vfat文件系统
NFS文件系统:网络文件系统
Linux的目录结构:主要是熟悉每个目录下有些什么
/bin和/usr/bin /boot /dev /etc /etc/rc.d /etc/rc.d/init
/home /lib /lost+found /media /misc /mnt /proc /root
/sbin /tmp /usr /usr/bin /usr/sbin /usr/src /srv /var
/sys
2 .linux的常用的命令(这里就不分析每个命令了,我把这些命令都试了一下)
Shell环境:linux的命令行界面
Shell是命令语言,命令解释程序以及程序设计语言的统称
Shell是一个解释性的程序设计语言、
用户切换:su - root
.(环境标量:用户运行环境的参数集合,linux多用户的,每一个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,而这个默认环境实际上就是一组环境变量的定义)
用户管理(useradd和passwd) 系统管理命令(ps和kill)
(管道的概念:就是把一个程序的输出直接连接到另一个程序的输入,而不经过任何中间文件,shell中字符“|”表示管道线)
磁盘相关命令(fdisk) free,df,du,fdisk
磁盘挂载命令(mount)mount –t vfat /dev/sda1 /mnt/u
改变工作目录 cd /home/lvjunwen2009/ ./表示当前目录 ../代表上级目录
Ls 列出目录的内容
Ls –l 显示格式:文件类型与权限 链接数 文件属主 文件大小 修改的时间 名字
Mkdir 创建一个目录 –m ,-p可以用-p一次创建多级目录
Mkdir –m 777 ./lvjunwen2009
cat 连接并显示指定的一个或者多个文件的有关信息 –n ,-b
cp mv rm三个命令 -i询问是否将存在的目标文件覆盖 -f禁止交互操作
注意cp中-a选项 ,和rm中的-r选项
Chown和chgrp命令 chown修改文件的所有者和组别 chgrp修改文件的组的所有权
Chmod改变文件的访问权限 注意:u,o,g,a四个级别,用“+”表示增加权限,用“-“减少权限 chmod a+rx,u+w lvjunwen2009.tgz
文件中搜索特定的内容,并将含有的行标准输出
Less分页器grep “h” ./-r |less其中-r为指定目录
在linux中,正则表达式通常用来查找文本的模式,以及对文本执行“搜索-替换“操作等等
正则表达式我专门做了一下总结,在第四部分。
在指定目录中搜索文件,find ./ -name qiong.c
Find的选项-depth,-mount ,-name,-user
Find支持混合查找,例子:find /etc –size +50000c –and –mtime +1
Locate 用于查找文件先建立一个包括系统内所有文件名称以及路径的数据库,之后当寻找时候只需查询这个数据库,不用实际深入档案之中了。比find快
Ln作用是为某一个文件在另外一个位置建立一个符号链接。当需要在不同的目录中用到相同的文件时候
Ln分为软链接和硬链接两种,ln –s ** **为软链接,ln ** **为硬链接。
第二部分:搜索的基本知识(2):
二、网络蜘蛛
概述
蜘蛛(即Web Spider),实际上是一个基于HTTP协议的网络应用程序。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,并抽取出网页中的其它超链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先。广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。
主要组成
根据抓取过程蜘蛛主要分为三个功能模块,一个是网页读取模块主要是用来读取远程Web服务器上的网页内容,另一个是超链分析模块,这个模块主要是分析网页中的超链接,将网页上的所有超链接提取出来,放入到待抓取URL列表中,再一个模块就是内容分析模块,这个模块主要是对网页内容进行分析,将网页中所有超标志去掉只留下网页文字内容。蜘蛛的主要工作流程如下图所示:
首先蜘蛛读取抓取站点的URL列表,取出一个站点URL,将其放入未访问的URL列表(UVURL列表)中,如果UVURL不为空刚从中取出一个URL判断是否已经访问过,若没有访问过则读取此网页,并进行超链分析及内容分析,并将些页存入文档数据库,并将些URL放入已访问URL列表(VURL列表),直到UVRL为空为止,此时再抓取其他站点,依次循环直到所有的站点URL列表都抓取完为止。