lucene如何对搜索内容进行建模
2011-08-14 01:06
316 查看
1.文档和域
文档是lucene索引和搜索的原子单位。文档为包含一个或多个域的容器。域值可以被索引或者不被索引,如果需要搜索一个域则必须对它进行索引。二进制格式的域值只能被存储而不能为索引,在索引一个域的时候需要使用分析器将域值转换为词汇单元。
2.索引过程
从上图中可以看出:lucene索引过程分为三个主要步骤,将原始文档转换为文本,分析文本,将分析的文本保存至索引中。在索引操作期间,文本首先从原始数据中提取出来,并用于创建对应的document的对象。该对象包含多个Field实例。他们都用来保存原始数据信息,随后的分析过程将文本处理成大量的语汇单元,最后将语汇单元加入到段结构中。
提取文本和创建文档:
lucene对于纯文本信息可以轻而易举的从中提取文本,如txt文件,但是如果需要对PDF格式的手册进行索引,你首先也必须从该文档中提取出文本,并用这些信息创建Lucened的文档和域。而java中没有对应的方法来处理PDF格式文件,对应的Microsoft Word 文件活其他非纯文本的格式文件一样。lucene可以结合Tika框架,从而也可以很容易的从中提取到相关的文本信息.
分析文档:
在索引操作期间,Lucene首先分析文本。将文本数据分隔为语汇单元。然后对他们进行一些可选的操作。例如,语汇单元在索引前需要统一转换为小写字母。以使搜索对大小写不敏感或者去掉相关频繁却没有实际意义的词(如:啊 呵呵。。。)。有关文档的分析,内容相当的多,在这里不在详细说明。后期有时间会详细讲解这方面的东西。
文档是lucene索引和搜索的原子单位。文档为包含一个或多个域的容器。域值可以被索引或者不被索引,如果需要搜索一个域则必须对它进行索引。二进制格式的域值只能被存储而不能为索引,在索引一个域的时候需要使用分析器将域值转换为词汇单元。
2.索引过程
从上图中可以看出:lucene索引过程分为三个主要步骤,将原始文档转换为文本,分析文本,将分析的文本保存至索引中。在索引操作期间,文本首先从原始数据中提取出来,并用于创建对应的document的对象。该对象包含多个Field实例。他们都用来保存原始数据信息,随后的分析过程将文本处理成大量的语汇单元,最后将语汇单元加入到段结构中。
提取文本和创建文档:
lucene对于纯文本信息可以轻而易举的从中提取文本,如txt文件,但是如果需要对PDF格式的手册进行索引,你首先也必须从该文档中提取出文本,并用这些信息创建Lucened的文档和域。而java中没有对应的方法来处理PDF格式文件,对应的Microsoft Word 文件活其他非纯文本的格式文件一样。lucene可以结合Tika框架,从而也可以很容易的从中提取到相关的文本信息.
分析文档:
在索引操作期间,Lucene首先分析文本。将文本数据分隔为语汇单元。然后对他们进行一些可选的操作。例如,语汇单元在索引前需要统一转换为小写字母。以使搜索对大小写不敏感或者去掉相关频繁却没有实际意义的词(如:啊 呵呵。。。)。有关文档的分析,内容相当的多,在这里不在详细说明。后期有时间会详细讲解这方面的东西。
相关文章推荐
- 如何在百度站内搜索前对数据或都其它内容进行处理?
- 如何读取搜索创建的Lucene索引内容
- 如何在Lucene里面进行数字范围搜索 (Numeric Range Query)
- 如何先搜索文件然后在文件中搜索具体内容进行输出?
- Lucene 7.1如何利用RMI进行远程搜索
- Lucene根据字段进行自定义搜索扩展
- Python网络爬虫(1)- 对CSDN主页进行搜索,得到自己想要的内容
- 教你如何使用Google进行搜索
- [ lucene高级 ] 研讨如何进行Lucene的分布式应用
- 如何从Powerdesigner进行数据建模并生成SQL脚本
- Windows系统下如何进行多条件搜索
- Lucene5.5对索引进行搜索
- 应用lucene.net进行搜索测试
- 利用Lucene.net搜索引擎进行多条件搜索的做法
- 如何用VC60实现类似windows搜索文件的功能,针对文件夹中包含的文件名进行模糊查
- 【百度地图API】如何进行地址解析与反地址解析?——模糊地址能搜索到精确地理信息!
- 基于Lucene多索引进行索引和搜索
- 单片机是如何与电脑进行通信的,电子工程师必知内容(转)
- ios 如何对UITableView中的内容进行排序
- linux less对文件内容进行搜索