-
lucene等搜索引擎解析
收藏lucene等搜索引擎解析
最近更新文章
lucene-使用sandbox的wordnet完成同义词索引
wordnet是一个同义词系统。
1、从wordnet网站下载解压prolog16.tar.gz文件
2、获得sandbox工具箱wordnet包的二进制文件
3、建立同义词索引
java org.apache.lucene.wordnet.Syns2Index prologwn/wn_s.plwordnetindex
4、将WordNet中的同义词连接到分析器中
public cl ...
lucene-使用Highlighter高亮显示查询项
1、Highlighte包含三个主要部分:
1)段划分器:Fragmenter
2)计分器:Scorer
3)格式化器:Formatter
2、不仅需要你提供记分器和需要高亮显示的文本,还需要一个TokenStream实例。这个TokenStream实例由分析器生成。我们提供的文本用于生成TokenStream,这个TokenStream被用作高亮显示的原始文本。
3、Highlighte ...
lucene-链式过滤器ChainedFliter
1、使用ChainedFilter将其它过滤器链接起来,在过滤器中执行AND、OR、XOR和ANDNOT的位操作。
2、ChianedFilter没有缓存,只要把它封装进CachingWrappingFilter就可以提供对过滤器结果的缓存操作。
3、
public class ChainedFilterTest extends TestCase{
public static final i ...
几分钟内可以部署的搜索引擎-searchbox
1、searchbox是一个完整的搜索工作,集成了网络爬虫、支持不同文档类型、可应用于多种自然语言,可自定义搜索结果,可用基于浏览器的管理平台对系统全权控制
2、使用了lucene
3、支持17种语言-包括日语、汉语、韩语
lucene索引过程详解
一、索引是LUCENE最重要的一个过程,通过IndexWriter的addDocument接口,可以将构建的Document加入索引。
二、IndexWriter的addDocument方法首先创建一个DocumentWriter对象,接着为Segment命名,然后调用DocumentWriter的addDocument()方法向索引中增加文档,最后将Segment的信息保存,如果有多个segme ...
lucene-索引的合并
1、使用IndexWriter的addIndexes(Direcotry[] dir)方法将索引合并到一个索引中
2、在合并内存中索引RAMDirectory时,一定将其相应的IndexWriter关闭,以保证滞留在缓存中的文档被刷到RAMDirectory中。
lucene-文档的查找与删除
1、查找
Term term=new Term("bookname","女");//bookname是field名称
docs=reader.termDocs(term);
2、删除单个文档
IndexReader reader=IndexReader.open(path);
reader.deleteDocument(0);//0是索引号
rea ...
lucene-锁与IndexModifier
1、write.lock
出现在向索引中增加文档时,或是将文档从索引中删除时。
会在IndexWriter被初始化时创建,然后会在调用IndexWrtier的close()方法时被释放。
会在IndexReader使用delete方法删除文档时创建,并在调用IndexReader的close()方法时被释放
2、commit.lock
主要是与segment合并和读取的操作相关。另外,当调 ...
lucene精解-BooleanQuery、RangeQuery及rewrite
1、BooleanQuery
1)
Term t1=new Term("bookname","女");
Term t2=new Term("bookname","的");
Term t3=new Term("bookname","我");
TermQuery q1=new ...
lucene-MultiPharseQuery带前缀和后缀查询
1、根据add方法顺序不同,从前到后依次是前缀,后缀,后缀后跟的单字。
2、
MultiPharseQuery query=new MultiPharseQuery();
Term t1=new Term("bookname","钢");
Term t2=new Term("bookname","和");
qu ...
lucene-SpanQuery精解和与正则RegexQuery精解
1、SpanTermQuery:与TermQuery一样。
Term t=new Term("contenct","david");
SpanTermQuery query=new SpanTermQuery(t);
2、SpanFirstQuery:从first的内容起始位置开始,在一个固定的宽度内查找所指定的词条。
Term t=new Term( ...
lucene-QueryParser
1、QueryParser在lucene2.0中所有操作建立在QueryParser实例的基础上
2、
String field="bookname";
String queryStr="java struts";
QueryParser parser=new QueryParser(field,new
standardAnalyzer());
...
lucene-检索结果的翻页问题
使用缓存+多次查询+数据库
1、在用户第一次查询后,将结果放在session。这里所说的结果指的是除了当前页外,另外再缓存一部分结果,比如后5页的结果。
2、这样,当用户翻页时,会先从session缓存中查看当前页是否被缓存。
3、如果是,则取出,直接返回给用户,如果不是,则进行索引的检索, 取出当前页内容返回,并更新缓存。
4、在缓存和多次查询的基础上,用数据库来缓解一部分访问压力,在用户 ...
lucene-多Field搜索与多索引搜索
1、多域搜索
MultiFieldQueryParser提供了3个静态方法
1)在不同的Field进行不同的查找
public static Query parse(String[] queries,String[] fields,Analyzer analyzer) throws ParseE ...
lucene-处理中文PDF的xpdf
简单处理中文的方式是xpdf
http://www.foolabs.com/xpdf/home.html
2、
Xpdf is an open source viewer for Portable Document Format (PDF) files. (These are also sometimes also called 'Acrobat' files, from the nam ...
lucene-封装的搜索架构compass
compass是一套使用了lucene的搜索引擎架构,提供了一套开源的、高性能的、可灵活配置的搜索架构,类似于hibernate进行pojo封装
lucene-JE中文分词
1、比较好的JAVA写的JE分词http://jesoft.cn:9080/je-analysis-1.5.3.jar,官网http://www.jesoft.cn/
2、提供相关的API
//采用正向最大匹配的中文分词算法,相当于分词粒度等于0MMAnalyzer analyzer = new MMAnalyzer();//参数为分词粒度:当字数等于或超过该参数,且能成词,该词就被切分出来MM ...
nutch-build.xm解读
nutch-build.xm解读
搜索引擎与人工智能 2009-05-09 19:16 阅读4评论0
字号: 大大 中中 小小
花了很多时间来读这个build.xml,并不是这个包不好读,相 ...