
搜索引擎
文章平均质量分 59
杨鑫newlfe
算法就是我的灵魂
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
archive for required library...
这个问题缠绕了我很长时间了原创 2014-09-19 09:14:33 · 2269 阅读 · 0 评论 -
创建处理文档的索引类: IndexProcessor
package ch2.lucenedemo.process;import java.io.*;import jeasy.analysis.MMAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.原创 2014-09-06 11:27:07 · 882 阅读 · 0 评论 -
搜索引擎入门 --- 倒排索引算法
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。原创 2014-09-07 10:48:12 · 6575 阅读 · 0 评论 -
lucene包的下载地址
本人也是初学搜索引擎,在使用的原创 2014-09-04 20:45:22 · 890 阅读 · 0 评论 -
AbstractFrontier
//使用一个抽象类来封装对Berkeley DB的操作package url;import java.io.File;import java.io.FileNotFoundException;import org.omg.CORBA.Environment;import com.sleepycat.bind.serial.StoredClassCatal原创 2014-11-09 15:05:34 · 867 阅读 · 0 评论 -
Lucene中的合并因子mergeFactor
mergeFactor是用来决定segment该如何被addDocument()方法进行合并的。当mergeFactor取比较小的值时,索引时所使用的内存较少而且搜素未优化的速度会比较快。因此,mergeFactor取值较大时(比如大于10),适合于批量的索引建立,而当搜索未优化索引的速度会更快,但是索引建立的速度会比较慢。当mergeFactor取较大的值时,建立索引的速度会原创 2014-10-23 20:24:02 · 1798 阅读 · 0 评论 -
Lucene 中.fnm格式
.fnm格式的文件中包含了Document中所有的field名称,比如,有如下的代码chuangjian原创 2014-10-23 14:54:05 · 1390 阅读 · 0 评论 -
CrawlUrl --- 使用Berkeley DB爬虫队列实例
//使用Berkeley DB爬虫队列实例package url;import java.io.Serializable;import java.sql.Date;import java.sql.Timestamp;public class CrawUrl implements Serializable{private static final long s原创 2014-11-09 15:02:40 · 1387 阅读 · 0 评论 -
布隆过滤器(Bloom Filter) -- SimpleBloomFilter源代码
//布隆过滤器(Bloom Filter)package url;import java.util.BitSet;public class SimpleBloomFilter{private static final int DEFAULT_SIZE = 2 private static final int[] seeds = new int[]{7, 11,原创 2014-11-09 17:11:03 · 1496 阅读 · 0 评论 -
布隆过滤器
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。基本概念编辑如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思原创 2014-11-09 17:16:09 · 1279 阅读 · 0 评论 -
MD5算法---java源代码
//MD5压缩算法代码package url;public class MD5 {public static String getMD5(byte[] source){String s = null;//用来将字节转换成十六进制表示的字符char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a'原创 2014-11-09 14:48:04 · 1421 阅读 · 0 评论 -
Frontier接口 --- Berkeley DB爬虫队列实例
//使用Berkeley DB爬虫队列实例package url;public interface Frontier {public CrawUrl getNext() throws Exception;public boolean putUrl(CrawUrl url) throws Exception;//public boolean visited(CrawU原创 2014-11-09 15:03:45 · 1393 阅读 · 0 评论 -
BDBFroniter --- 实现TODO表
package url;import java.io.FileNotFoundException;import java.util.Map.Entry;import java.util.Set;import com.sleepycat.bind.EntryBinding;import com.sleepycat.bind.serial.SerialBinding原创 2014-11-09 16:02:47 · 1054 阅读 · 0 评论 -
网络爬虫-Heritrix 和 Nutch 比较与分析
Heritrix项目介绍 Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的资源进行归档,建立网络数字图书馆。在过去的6年里,IA已经建立了400TB的数据。 IA期望他们的crawler包含以下几种: 宽带爬虫:能够以更高的带宽去站点爬。 主题爬虫:集中于被选择的问题。 持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网页。 实验爬虫:对爬虫技转载 2014-11-09 20:06:48 · 1498 阅读 · 0 评论 -
索引的segment
每个segment代表Lucene的一个完整的索引段原创 2014-10-23 13:58:34 · 1218 阅读 · 0 评论 -
Lucene 中 .fdx 和 .fdt 和.tis和.tii 还有.cfs含义
1、.fdx 和 .fdt是使用综合的两个文件,其中.fdt用于存储具有Store.YES属性的Field的数据而.fdt则是一个索引,用于存储Document在.fdt中的位置。2、.tis文件用于存储分词后的词条(Term), 而.tii就是它的索引文件,它标明了每个.tis文件中的词条位置。3、.cfs(复合索引格式):在IndexWriter总有一个属性:use原创 2014-10-23 16:24:19 · 2975 阅读 · 0 评论 -
Heritrix
Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。本文详细介绍了 Heritrix 在 Eclipse 中的配置、运行,最后以抓取北京林业大学网站为例,介绍如何对其进行扩展,实现只抓取特定网站的页面。原创 2014-11-09 20:03:51 · 1054 阅读 · 0 评论 -
Lucene中对PostingTable进行排序,Posting源码
在DocumentWriter的addadocumenpackage indexwriter;//Posting类源码import org.apache.lucene.index.Term;import org.apache.lucene.index.TermVectorOffsetInfo;public class Posting {//词条对象Ter原创 2014-10-23 13:20:16 · 1175 阅读 · 0 评论 -
FSDirectory 与 RAMDirectory
//public IndexWriter(Directory d, Analyzer a, boolean create)//中的Directory类型,在Lucene工具当中有两个子类分别是RAMDirectory 和 FSDirectory//这两个目录度可以作为索引的存储路径//RAMDirectory是存放到内存当中的一个区域,FSDirectory是存放到文件系统中的磁盘里原创 2014-10-24 17:26:19 · 3103 阅读 · 0 评论 -
以下是一个简单的多线程爬虫实现
//以下是一个简单的多线程爬虫实现package thread;import java.util.concurrent.Callable;public class MThread extends Thread{threadList = new ArrayList(THREAD_NUM);for(int i = 0; i Thread t = ne原创 2014-11-11 08:15:21 · 1426 阅读 · 0 评论 -
索引的读取工具IndexReader
//索引的读取工具IndexReader//在Lucene中的index包中有一个重要的工具IndexReader。//它主要负责对索引的各种读取和维护工作。//IndexReader本身是一个抽象类。它有一个子类MultiReader,//通常,无须关注其子类的实现,因为IndexReader本身提供了一个静态方法//来获取一个它的子类的实现package index;原创 2014-10-26 16:42:42 · 1125 阅读 · 0 评论 -
使用ID号来删除特定文档
//前面已经说了,在建立索引的过程中,Lucene会为每一个加入索引的Document赋予一个ID号。//这个ID号标识每个文档。//这里的删除机制类似于一个操作系统里的回收站的机制。既可以删除,又可以恢复。package directory; import org.apache.lucene.analysis.standard.StandardAnalyzer;imp原创 2014-10-26 20:45:15 · 1070 阅读 · 0 评论 -
Lucene中的锁commit.lock 和 writer.lock
commit.lock 和 writer.lock//在Lucene设计的同时,设计了Lucene的'锁',//1、writer.lockwriter.lock出现在向缩影中添加文档时,或者将文档从索引中删除时。writer.lock会在Index.writer被初始化时创建,然后会在调用IndexWriter的close()方法是被释放。2、commit.lock原创 2014-10-26 21:26:31 · 2546 阅读 · 0 评论 -
使用IndexWriter来合并
//合并两个索引目录package directory;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.l原创 2014-10-25 08:17:59 · 1045 阅读 · 0 评论 -
通过java访问HDFS
//通过一个简单的例子展示一下如何使用java访问HDFSpackage heritrix;import java.io.InputStream;import java.net.URL;import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;import org.apache.hadoop.io.IOUtils原创 2014-11-12 20:35:20 · 1310 阅读 · 0 评论 -
通过HDFS的API访问文件系统的例子
//通过HDFS的API访问文件系统的例子package heritrix;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.h原创 2014-11-12 21:01:05 · 1462 阅读 · 0 评论 -
IndexSearcher的基础
//IndexSearcher的三个共有的构造函数,均将索引的存放目录作为参数/* * public IndexSearcher(String path) throws IOException * public IndexSearcher(Directory directory) throws IOException * public IndexSearcher(IndexRead原创 2014-10-27 22:47:01 · 1304 阅读 · 0 评论 -
Consistent Hash算法学习
ConsistentHashing算法代码。一致性哈希(Consistent Hash)协议简介一致性哈希算法在1997年由麻省理工学院提出(参见0),设计目标是为了解决因特网中的热点(Hot pot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。哈希算法一致性哈希提出了在动态变化的Cache环境中原创 2014-11-12 08:50:01 · 1038 阅读 · 0 评论 -
Hits详解
//====Hits详解====////这是Hits的几个公有的接口//取得当前结果集的数量//public final int length()//取得当前结果集中第N个Document//public fianal Document doc(int n) throws IOException//取得当前结果集中第N个Document的得分//原创 2014-10-27 23:49:53 · 1544 阅读 · 0 评论 -
Hadoop中WordCount例子的实现
//用Hadoop开源的计算包。package heritrix;import java.io.BufferedReader;import java.io.IOException;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.L原创 2014-11-13 15:47:17 · 1167 阅读 · 0 评论 -
HitS内部的缓存实现源代码
//Hits的缓冲机制的源代码package hits;import java.io.IOException;import org.apache.lucene.document.Document;import org.apache.lucene.search.Filter;import org.apache.lucene.search.Query;impor原创 2014-10-29 00:51:38 · 1020 阅读 · 0 评论 -
BooleanQuery布尔搜索
顾名思义就是布尔型查询,package query;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache原创 2014-10-29 13:36:29 · 1348 阅读 · 0 评论 -
Lucene中BooleanQuery的MUST和MUST_NOT
两个MUST取中间的交集这里选择的是package query;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.ap原创 2014-10-29 13:41:25 · 3227 阅读 · 0 评论 -
Nctch简介
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步演变成为一个公司垄断原创 2014-11-14 09:02:52 · 1420 阅读 · 0 评论 -
RangeQuery范围搜索
package query;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.index.原创 2014-10-29 23:02:21 · 1276 阅读 · 0 评论 -
RangeQuery的rewrite方法
package query;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.Term;import org.apache.lucene.index.TermEnum;import org.apache.lucene.search.BooleanClause;import原创 2014-10-29 23:35:53 · 1013 阅读 · 0 评论 -
理解主题爬虫源代码
//网络爬虫:理解主题爬虫//指定抓取机票价格的例子package com;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import o原创 2014-11-15 23:59:33 · 3283 阅读 · 2 评论 -
FuzzyQuery模糊搜索
//模糊搜索,可以进行单字查找package query;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.Term原创 2014-10-30 18:14:54 · 2391 阅读 · 0 评论 -
限定爬虫 --- 输入网址,输出对应的IP地址
//根据主机字符串获得主机IP地址package com;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.InetAddress;import java.net.UnknownHostException;原创 2014-11-16 00:32:10 · 1635 阅读 · 0 评论 -
WildcardQuery通配符搜索
//通配符匹配//通配符例如:‘*’, ‘?’//在这个方法中首先设定一个带通配符的字符串,再包装秤Term对象,//然后将其作为WilQuery的构造函数的参数传入。package query;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.d原创 2014-10-30 22:41:47 · 3273 阅读 · 0 评论