关于lucene 结构及内层的研究(一)

lucene 东西太多,一点一点来,先谈下本人对lucene里Query的分析。其他的会在后续作品中发布。如有不足或者我理解上的错误,请email给我,我好及时改正,更新。 数据挖掘交友

QuerySearch的基本单元,实现各种搜索的方法,下面我简单的列一下他们的作用, 数据挖掘实验室

TermQuery,

最基本的Query,TermQuery(new Term(Str filed, Str Text));就可以构造, TermQuery把查询条件视为一个key, 要求和查询内容完全匹配,比如Field.Keyword类型就可以使用TermQuery 数据挖掘工具

 PhraseQuery

数据挖掘研究院

 PhraseQuery 数据挖掘研究院

表示可用于非严格语句的查询,匹配包含的指定连续Term, 比如"one five"可以匹配"one two three four five", PhraseQuery提供了一个重要的setSlop()参数, 这个参数主要用于设置phrase query中词之间的允许间隔数目,在默认情况下slop的值是0, 就相当于TermQuery的精确匹配, 通过设置slop参数(比如"one five"匹配"one two three four five"就需要slop=3,如果slop=2就无法得到结果。这里我们可以认为slope是单词移动得次数,可以左移或者右移。这里特别提醒,PhraseQuery不保证前后单词的次序,在上面的例子中,"two one"就需要2slop,也就是认为one 向左边移动2, 就是能够匹配的”one two”如果是“five three one” 就需要slope=6才能匹配。还有一点要注意,就是如果碰到stopword,(会在stopAnalyzer中细说),则stopword不用把slop算在内。 数据挖掘实验室

 BooleanQuery 数据挖掘研究院

 BooleanQuery

是一个组合的Query, 可以把各种Query添加进去(主要是TernQueryPhraseQuery)并标明他们的逻辑关系,添加条件用public void add(Query query, boolean required, boolean prohibited)方法, 后两个boolean变量分别表示不匹配子Query将不匹配booleanQuery和匹配子Query将不匹配booleanQuery。估计类似google的(+-)功能。这两个参数不允许同时为true, 否则报错。但两个参数可以都为false,而且必须保证匹配至少一个子query才能用来匹配booleanQuery 一个BooleanQuery中可以添加多个Query, 但不能超过setMaxClauseCount(int)的值(默认1024),否则抛出TooManyClauses错误. 数据挖掘论坛

RangeQuery

RangeQuery 数据挖掘工具

RangeQuery表示一个范围的搜索条件,RangeQuery query = new RangeQuery(begin, end, included);最后一个boolean值表示是否包含边界条件本身, beginend必须满足至少有一个不为null及两者都在同一个field. 这里的Range是以StringcompareTo (Str)进行比较。所以熟悉j2se的应该很容易确定Range的范围。 数据挖掘研究院

 PrefixQuery 数据挖掘交友

数据挖掘交友

 PrefixQuery

数据挖掘工具

表示匹配是以指定字符串开头的匹配查询, 可以用于Keyword形式的查询。一般的在suggestion里对于single word可以使用的,也可用于查询网络结构目录树的数目。 数据挖掘工具

 PhrasePrefixQuery 数据挖掘论坛

数据挖掘研究院

 PhrasePrefixQuery 数据挖掘论坛

由于PhraseQuery不能很灵活的适应各种的phrase的匹配。比如要搜索”Sony Cam*”, 先可以把add(Term)Sony放在Term.,然后把使用IndexReader.Terms(Term)匹配以Cam为前缀的词,最后使用PhrasePrefixQuery.add(Term[] terms)把两者加在Query中。这里slopephraseQuery雷同,仍然起着对phrase的定位作用,addTerm(Term[] terms)内使用ArrayList来保存Term数据,而Phrase使用的是Vector. 数据挖掘交友

WildcardQuery

数据挖掘交友

数据挖掘交友

WildcardQuery

数据挖掘交友

WildcardQueryFuzzyQuery是继承MultiTermQuery的,这是他们区别的其他的几种常规Query. Query包含自身全部的匹配,TermFilteredTermEnum提供,而MultiQuery则是不完全自身的匹配。Term的提供者也不同。WildcardQuery主要使用?*来表示一个或多个字母的匹配,值得注意的是,wildcard,empty对于?*也是匹配的,Query的开头不允许用使用?*. 数据挖掘研究院

 FuzzyQuery 数据挖掘交友

数据挖掘工具

 FuzzyQuery 数据挖掘研究院

能模糊匹配英文单词,这个功能非常有用,大小写敏感。可以使用其构造方法FuzzyQuery(Term term, float minimumSimilarity, int prefixLength)方法,还提供2种默认的0.5相似度,和0的前缀状态。相似度比较时要减去非比较的前缀。然后再比。例如,”soni”匹配”sony”设置相似度前缀为0,则相似度为75%,如果前缀为1,则相似度为66.7%.只要高于最小相似度,便能找到。如果词长度不一致,则以Query减去前缀的为准,例如设前缀为1,用”della”来匹配”dell”,相似度75%, 如果”del”来匹配”dell”则相似度只有50% 数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:Lucene In Action ch 5 笔记 --高级搜索技术
下一篇:让Nutch支持中文分词
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • Larbin网站爬虫简明使用说明
  • 全文检索引擎Lucene源码分析-analysis包
  • Nutch爬虫工作流程及文件格式详细分析
  • Lucene 基础指南(Java版)
  • 关于lucene 结构及内层的研究(一)
  • 实现NUTCH中文分词的代码修改方法
  • 利用Lucene搜索Java源代码
  • Lucene In Action ch 5 笔记 --高级搜索技
  • 第三节 Lucene索引文件格式分析
  • 如何使用Lucene进行全文检索(一)
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 什么是luncene
  • 什么是nutch
  • 让Nutch支持中文分词
  • 关于lucene 结构及内层的研究(一)
  • Lucene In Action ch 5 笔记 --高级搜索技
  • 第三节 Lucene索引文件格式分析
  • 第二节 Lucene系统结构分析
  • 第一节 全文检索系统与Lucene简介
  • Lucene的查询语法!
  • 第四节 Lucene索引构建逻辑模块分析
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静