lucene搜索引擎

上传人:沙** 文档编号:243096514 上传时间:2024-09-15 格式:PPT 页数:34 大小:1.76MB
返回 下载 相关 举报
lucene搜索引擎_第1页
第1页 / 共34页
lucene搜索引擎_第2页
第2页 / 共34页
lucene搜索引擎_第3页
第3页 / 共34页
点击查看更多>>
资源描述
全文检索及,Lucence,全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统。,一、全文检索现状,目前常见全文检索技术:,1.,百度、谷哥等专业搜索引擎系统。,2.,数据库类型的全文检索。,3. java,以,Lucence,为代表的全文检索系统。,4. php,以,Sphinx,为代表的全文检索系统。,5.,以,TRS,为代表其他语言及商业全文检索系统。,专业搜索引擎,专业搜索引擎提供了大众化的全网的内容搜索。,优点,:使用免费,搜索便捷。,缺点,:过于大众化,很多专业数据被淹没在信息的海洋之中,不便于与应用系统相结合。,数据库类型全文检索,大多数主流数据都提供全文检索功能,如,Oracle,、,Mysql,、,SqlServer,等。,优点,:和数据库整合到一块,不需要独立建立系统,方便管理,使用方便。,缺点,:扩展不便,索引和查询都不够灵活方便,会影响数据库运行性能。,Lucence,开源搜索引擎核心,确切的讲,Lucence,不是完整的搜索引擎,它只是一个开发包。,优点,:自定义索引格式,容易部署,方便扩展,提供丰富强大的查询实现,可以对任一可以影响到结果的功能进行定制。,缺点,:还未产品化,还存在着一些特定场合的问题。,Sphinx,一种可以和,Mysql,配合使用的全文检索系统,优点,:高速、海量,算法优秀,支持分布式,功能、接口丰富,发行版本支持多平台。,缺点,:有待学习接触。,Lucence,简介,基于,Java,的全文信息检索工具包,Lucene,目前是,Apache Jakarta,家族中的一个开源项目,下载,http:/lucene.apache.org/,基于,Java,编写,并有,.NET,同构产品以及其他语言实现。,Lucence,突出优点,(,1,)索引文件格式独立于应用平台。,(,2,)在传统全文检索引擎的,倒排索引,的基础上,实现了分块索引,(,3,)优秀的面向对象的系统架构,(,4,)设计了独立于语言和文件格式的文本分析接口,(,5,)已经默认实现了一套强大的查询引擎,数据分类,结构化数据,:具有固定格式或者有限长度的数据如数据库、元数据等。,非结构化数据,:指不固定长度或者不固定格式的数据如邮件、,word,文档等。,非结构化数据的另一种叫法,全文数据,。,搜索分类,结构化数据搜索:用,sql,对数据库搜索,利用操作系统命令对文件类型的元数据按照文件大小、扩展名、修改时间等属性进行搜索等。,对非结构化数据搜索:如操作系统进行文件内容关键词的检索;再如用,google,百度进行的海量信息检索。,非结构化信息的检索,顺序扫描法:,特点:方便、简单、速度慢。,先索引再进行搜索法:,特点:需要先进行索引才能进行查找,查找速度快。又 称全文检索。,全文检索,全文检索大致分为两个部分:索引创建、搜索索引。,于是全文检索就存在如下三个问题:,1,、索引里存着什么?,2,、如何创建索引?,3,、如何进行索引搜索?,索引链表,反向索引结构图,通过合并链表查出既包含,Lucence,又包含,Solr,的文件,索引过程,组织文档,将原始文档进行分词处理,(Tokenizer),得到词元,(Token),语言组件处理,(,变为小写、复数变单数、动词变原型,),将得到的词,Term,传递给索引组件,:,1.,利用所得到的,Term,创建一个字典,2.,对字典进行字母排序,3.,合并相同词,Term,成为文档倒排,(Posting List),链表。,倒排文档链表,Posting List,查询索引过程,用户输入查询语句,对查询语句进行词法分析语法分析及语言处理,词法:单词和关键字,语法分析:根据与语法规则形成语法树,语言处理:和索引过程几乎相同,搜索索引得到符合语法树的文档,得到查询语句的相关性对结果排序,Lucence and learned not Hadoop,语法树,处理过的语法树,相关性与分值,Lucence,软件架构,查询,访问 索引存储,索引,内存,存储,文件系统,分析,语料库,用户界面,图例,实现,协议,Lucence API,介绍,org.apache.Lucene.search,搜索入口,org.apache.Lucene.index,索引入口,org.apache.Lucene.analysis,语言分析器,org.apache.Lucene.queryParser,查询分析器,org.apache.Lucene.document,存储结构,org.apache.Lucene.store,底层,IO/,存储结构,org.apache.Lucene.util,一些公用的数据结构,Lucene,应用实例,以搜索文本文档,(*.txt),为例,假定指定目录没有子目录,文档索引代码,File indexDir = new File(“D:luceneIndex”);/,此目录用于存储生成的索引,File dataDir = new File(“D:luceneData”);/,需要建立索引的目录(假定其没有子目录),Analyzer luceneAnalyzer = new CJKAnalyzer();/,中日韩词法分析,IndexWriter indexWriter = new IndexWriter(indexDir, luceneAnalyzer,true);,File dataFiles = dataDir.listFiles();,for (,File currentFile : dataFiles,) ,if (currentFile .isFile() & currentFile .getName().endsWith(.txt) ,Document document = new Document();,Reader txtReader = new FileReader(currentFile );,document.add(Field.Text(,path, currentFile .getCanonicalPath();,document.add(Field.Text(,contents, txtReader);,indexWriter.addDocument(document);,indexWriter.optimize();,indexWriter.close();,文档查询代码,String queryStr = “which you want;,File indexDir = new File(D:luceneIndex);,if(!indexDir.exists(),System.out.println(The Lucene index is not exist);,return;,FSDirectory directory = FSDirectory.getDirectory(indexDir,false);,IndexSearcher searcher = new IndexSearcher(directory);,Term term = new Term(,contents,queryStr.toLowerCase();,TermQuery luceneQuery = new TermQuery(term);,Hits hits = searcher.search(luceneQuery);,for(int i = 0; i hits.length(); i+),Document document = hits.doc(i);,System.out.println(File: + document.get(,path,);,全文检索常见问题,文档域的存储设置,分词分析器个性化实现,文档检索高亮显示查询过程,查询分页、排序,索引建立过程异常处理,部分搜索结果搜索不到,索引内容的删除、更新,全文检索常见问题,中文分词处理,文章相关内容计算法,分布式全文检索,不能及时更新索引时与数据库内容一致方法,高级查询:通配符、模糊、间距查询、范围查询、权重查询、组合条件、转义字符,英文检索:,单词缩为词根形式,steamming,lemmatization,两个过程需要建立对应的分词器,Linux Window,平台差异,Nutch,不同版本的,Lucene,之间,API,有较大差异,是否要转向,Sphinx,全文检索常见问题,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!