Lucene和搜索程序
Lucene只是一个提供建立索引和搜索功能的工具箱
以下是一个普通搜索程序的必要组件
索引组件
获取内容
包括从网络,文件系统,数据库,获取数据内容,获取内容的难易程度和功能需求紧密相关,Lucene不提供内容获取功能建立文档
将原始内容转化为便于索引的部件(Document).文档包含一些带值的域用于描述文档.
例如:documen.add(new TextField("fieldName","content"))
问题的关键是将内容分割成合适的Document和Field文档分析
Lucene提供了大量的分析器,可以对文档的整个内容进行语义上的分析,分割,提取等等控制性的操作,最后生成对建立索引有益的语汇单元文档索引
将文档加入到索引列表
搜索组件
从索引中查找单词,从而找到包含该单词的文档
用户界面(UI)
互联网高度发达的今天用户交互体验已经上升到了决定产品成败的关键地位.用户从用户界面提交一个搜索请求,该请求首先转换成合适的查询(query)对象格式,供搜索引擎使用建立查询(Build Query)
Lucene提供QueryParse,将用户输入的文本处理成查询对象搜索查询(Search Query)
查询索引并返回于查询语句匹配的文档,可以对查询结果进行搜集,过滤,排序展现结果
搜索程序的其他模块
- 管理模块
- 分析模块
- 搜索范围