利用Lucene搜索Java源代码
某些网站允许软件开发社团通过发布开发者指南、白皮书、FAQs【常见问题解答】和源代码以实现信息的共享。随着信息量的增长,和几个开发者贡献出自己的知识库,于是网站提供搜索引擎来搜索站点上现有的所有信息。虽然这些搜索引擎对文本文件的搜索可以做的很好,但对开发者搜索源代码做了比较严格的限制。搜索引擎认为源代码就是纯文本文件,因此,在这一点上,与成熟的可以处理大量源文件的工具――grep相比没有什么不同。
在这篇文章中,我推荐使用Lucene,它是基于Java的开源搜索引擎,通过提取和索引相关的源码元素来搜索源代码。这里,我仅限定搜索Java源代码。然而,Lucene同样可以做到对其他编程语言的源代码的搜索。
文章给出了在Lucene环境下搜索引擎重点方面的简短概述。要了解更多细节信息,参考Resources部分。
版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接
作者:Renuka;Knightchen(作者的blog:http://blog.matrix.org.cn/page/Knightchen)
原文:http://www.matrix.org.cn/resource/article/44/44362_Lucene+Java.html
关键字:Lucene;Java
概述
Lucene是最流行的开源搜索引擎库之一。它由能文本索引和搜索的核心API组成。Lucene能够对给出一组文本文件创建索引并且允许你用复杂的查询来搜索这些索引,例如:+title:Lucene -content:Search、search AND Lucene、+search +code。在进入搜索细节之前,先让我来介绍一下Lucene的一些功能。
在Lucene中索引文本
搜索引擎对所有需要被搜索的数据进行扫描并将其存储到能有效获取的一个结构里。这个最有名的结构被称为倒排索引。例如,现在考虑对一组会议记录进行索引。首先,每个会议记录的文件被分为几个独立的部分或者域:如标题、作者、email、摘要和内容。其次,每一域的内容被标记化并且提取出关键字或者术语。这样就可以建立如下表所示会议记录的倒排索引。
....
对于域中的每一术语而言,上图存储了两方面的内容:该术语在文件中出现的数量(即频率【DF】)以及包含该术语的每一文件的ID。对于每个术语保存的其它细节:例如术语在每个文件中出现的次数以及出现的位置也被保存起来。无论如何,对于我们非常重要的一点是要知道:利用Lucene检索文件意味着将其保存为一种特定格式,该格式允许
相关文档:
线程的创建和启动
Java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。
Thread类是实现了Runnable接口的一个实例,它代表 ......
1、中文问题的来源
由于Java
语
言内部采用UNICODE编码,所以在JAVA
程序运行时,就存在着一个从UNICODE编码和对应的操作系统及浏览器支持的编码格式
转
换输入、输出的问题,这个转换过程有着一系列的步骤,如果其中任何一步出错,则显示出来的汉字就会出是乱码,这就是我们常见的JAVA
中
文问题。几乎所有的 ......
service = new
Service();
thread=new
Thread(service);
try
{
  ......
我使用URL类来访问FTP服务器,当地址中没有中文时没有问题,但是
当ftp中的文件夹有中文时,就无法访问了,我试过encoder和decoder类,都不行,有什么解决方法么?
URL now = new URL("ftp://202.204.208.124/软件/");
......