lucene经典学习研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lucene经典学习研讨

为J2EE应用程序添加全文搜索 什么是全文搜索 Java全文搜索引擎Lucene 使用OSEM引擎Compass 深入Lucene API 什么是全文搜索 按关键字搜索的查询方式 只能处理文本 分词+索引 全文搜索和数据库索引的比较 Java全文搜索引擎Lucene 纯Java编写的全文搜索引擎 可以嵌入到任何Java应用程序 集成Lucene的Java应用程序: Eclipse JIRA theServerS 使用Compass实现全文搜索 什么是Compass 封装了Lucene的OSEM Compass简化了Lucene的API 使用Lucene好比使用JDBC 使用Compass好比使用Hibernate 简化多线程同步问题 如何使用Compass 定义要搜索的JavaBean 实例化Compass 使用CompassSession,CompassTransaction Lucene的存储结构 Lucene的重要概念 Directory:存放索引,通常是一个目录 Document:存放一条索引记录 Field:存放一个字段 IndexWriter:增删索引 IndexSearcher:进行搜索并返回结果 Analyzer:对文本进行分词 Highlighter:对搜索结果予以高亮显示 Field索引类型Index Field存储类型Store Lucene的多线程模型 使用IndexSearcher须注意 一旦打开,不会搜索到以后添加的索引 是线程安全的,多个线程仅需一个实例 使用IndexWriter须注意 修改索引后,需flush()或close()方能使修改生效 非线程安全,任一时刻仅能有一个线程对其操作 Lucene不负责多线程同步,同步问题由应用程序自己解决 对多线程优化Lucene 使用ReadWriteLock 使用Version Check 开发泛型安全的Search Framework Lucene最佳实践 多个线程共享一个IndexSearcher 只有当索引修改后才重新打开IndexSearcher 多个线程共享一个IndexWriter并严格同步 异步修改索引提高性能 为每个JavaBean创建单独的索引目录 * 只能使用SQL查询,无法定制 提供编程接口,容易定制索引规则 可定制性 无匹配度算法,无法按匹配度对搜索结果排序 有匹配度算法,搜索结果按匹配度从高到低排序 匹配度 无法按单词匹配,使用’%ant%’也会匹配”planting” 按单词匹配,使用”ant”不会匹配”planting” 匹配效果 无法使用索引进行LIKE查询 对文本建立关键字索引 索引 数据库 全文搜索 类似SQL查询的ResultSet结果集,包含多个Record 代表一个搜索结果,持有一个Document列表 Hits 类似数据库表的Field字段 一个字段的完整内容 Field 类似数据库表的Record记录 一条存储记录,包含多个Field Document 数据库 Lucene 不索引 Index.NO 不分词索引 Index.UN_TOKENIZED 分词索引 Index.TOKENIZED 压缩存储 Store.COMPRESS 不存储 Store.NO 存储 Store.YES 不允许 允许 写索引 允许 允许 读索引 写索引 读索引 *

文档评论(0)

骨干 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档