﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-丄諦啲仇魜ヤ              -文章分类-lucene-2.0与compass</title><link>http://www.blogjava.net/Crying/category/28485.html</link><description> 我的格言：
如 果 敌 人 让 你 生 气 , 那 说 明 你 没 有 胜 他 的 把 握！
</description><language>zh-cn</language><lastBuildDate>Sat, 19 Jan 2008 23:30:35 GMT</lastBuildDate><pubDate>Sat, 19 Jan 2008 23:30:35 GMT</pubDate><ttl>60</ttl><item><title>lucene-2.0学习文档</title><link>http://www.blogjava.net/Crying/articles/171400.html</link><dc:creator>Crying</dc:creator><author>Crying</author><pubDate>Sat, 29 Dec 2007 01:06:00 GMT</pubDate><guid>http://www.blogjava.net/Crying/articles/171400.html</guid><wfw:comment>http://www.blogjava.net/Crying/comments/171400.html</wfw:comment><comments>http://www.blogjava.net/Crying/articles/171400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Crying/comments/commentRss/171400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Crying/services/trackbacks/171400.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">&nbsp; lucene-2.0学习文档</span></p>
<a href="http://www.javaeye.com/search?classify=topic&amp;keyword=lucene-2.0%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3">http://www.javaeye.com/search?classify=topic&amp;keyword=lucene-2.0%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3</a><br />
<br />
<span style="color: #0000ff">&nbsp; Compass <br />
</span><a href="http://www.360doc.com/showWeb/0/14/357563.aspx">http://www.360doc.com/showWeb/0/14/357563.aspx</a><br />
<br />
<br />
我写了一个通用的例子&nbsp; 呵呵 不知道好不好 &nbsp;<a href="http://www.blogjava.net/Files/Crying/全文检索.rar">http://www.blogjava.net/Files/Crying/全文检索.rar</a>&nbsp;<br />
<p><a name="N1004B"><span class="atitle">Lucene 简介</span></a></p>
<p>Lucene 是一个基于 Java 的全文信息检索工具包，它不是一个完整的搜索应用程序，而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。</p>
<p>目前已经有很多应用程序的搜索功能是基于 Lucene 的，比如 Eclipse 的帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引，所以你只要能把你要索引的数据格式转化的文本的，Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档，PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的，然后将转化后的内容交给 Lucene 进行索引，然后把创建好的索引文件保存到磁盘或者内存中，最后根据用户输入的查询条件在索引文件上进行查询。不指定要索引的文档的格式也使 Lucene 能够几乎适用于所有的搜索应用程序。</p>
<p>图 1 表示了搜索应用程序和 Lucene 之间的关系，也反映了利用 Lucene 构建搜索应用程序的流程：</p>
<br />
<a name="N1005C"><strong>图1. 搜索应用程序和 Lucene 之间的关系</strong></a><br />
<img alt="图1. 搜索应用程序和 Lucene 之间的关系" src="http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/fig001.jpg" /> <br />
<br />
<table cellspacing="0" cellpadding="0" width="100%" border="0">
    <tbody>
        <tr>
            <td><img height="1" alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /><br />
            <img height="6" alt="" src="http://www.ibm.com/i/c.gif" width="8" border="0" /></td>
        </tr>
    </tbody>
</table>
<table class="no-print" cellspacing="0" cellpadding="0" align="right">
    <tbody>
        <tr align="right">
            <td><img height="4" alt="" src="http://www.ibm.com/i/c.gif" width="100%" /><br />
            <table cellspacing="0" cellpadding="0" border="0">
                <tbody>
                    <tr>
                        <td valign="middle"><img height="16" alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /><br />
                        </td>
                        <td valign="top" align="right"><strong></strong></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<br />
<br />
<p><a name="N10066"><span class="atitle">索引和搜索</span></a></p>
<p>索引是现代搜索引擎的核心，建立索引的过程就是把源数据处理成非常方便查询的索引文件的过程。为什么索引这么重要呢，试想你现在要在大量的文档中搜索含有某个关键词的文档，那么如果不建立索引的话你就需要把这些文档顺序的读入内存，然后检查这个文章中是不是含有要查找的关键词，这样的话就会耗费非常多的时间，想想搜索引擎可是在毫秒级的时间内查找出要搜索的结果的。这就是由于建立了索引的原因，你可以把索引想象成这样一种数据结构，他能够使你快速的随机访问存储在索引中的关键词，进而找到该关键词所关联的文档。Lucene 采用的是一种称为反向索引（inverted index）的机制。反向索引就是说我们维护了一个词/短语表，对于这个表中的每个词/短语，都有一个链表描述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候，就能非常快的得到搜索结果。我们将在本系列文章的第二部分详细介绍 Lucene 的索引机制，由于 Lucene 提供了简单易用的 API，所以即使读者刚开始对全文本进行索引的机制并不太了解，也可以非常容易的使用 Lucene 对你的文档实现索引。</p>
<p>对文档建立好索引后，就可以在这些索引上面进行搜索了。搜索引擎首先会对搜索的关键词进行解析，然后再在建立好的索引上面进行查找，最终返回和用户输入的关键词相关联的文档。<br />
<br />
</p>
<img src ="http://www.blogjava.net/Crying/aggbug/171400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Crying/" target="_blank">Crying</a> 2007-12-29 09:06 <a href="http://www.blogjava.net/Crying/articles/171400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>