{"id":469,"date":"2008-01-09T00:00:00","date_gmt":"2008-01-08T16:00:00","guid":{"rendered":"http:\/\/www.strongd.net\/?p=469"},"modified":"2011-07-15T09:45:53","modified_gmt":"2011-07-15T01:45:53","slug":"lucene%e7%9a%84%e7%ae%80%e5%8d%95%e5%ae%9e%e4%be%8b","status":"publish","type":"post","link":"https:\/\/www.strongd.net\/?p=469","title":{"rendered":"lucene\u7684\u7b80\u5355\u5b9e\u4f8b<\u4e00>"},"content":{"rendered":"<p>&nbsp;\u8bf4\u660e\u4e00\u4e0b,\u8fd9\u4e00\u7bc7\u6587\u7ae0\u7684\u7528\u5230\u7684<SPAN class=hilite1>lucene<\/SPAN>,\u662f\u75282.0\u7248\u672c\u7684,\u4e3b\u8981\u5728\u67e5\u8be2\u7684\u65f6\u50192.0\u7248\u672c\u7684<SPAN class=hilite1>lucene<\/SPAN>\u4e0e\u4ee5\u524d\u7684\u7248\u672c\u6709\u4e86\u4e00\u4e9b\u533a\u522b. <BR>\u5176\u5b9e\u8fd9\u4e00\u4e9b\u4ee3\u7801\u90fd\u662f\u65e9\u51e0\u4e2a\u6708\u5199\u7684,\u81ea\u5df1\u5f88\u61d2,\u6240\u4ee5\u5230\u4eca\u5929\u624d\u5199\u5230\u81ea\u5df1\u7684\u535a\u5ba2\u4e0a,\u9ad8\u6df1\u7684\u6587\u7ae0\u81ea\u5df1\u5199\u4e0d\u4e86\uff0c\u53ea\u80fd\u8bb0\u5f55\u4e0b\u4e00\u4e9b\u7b80\u5355\u7684\u8bb0\u5f55\u4e0e\u70b9\u6ef4\uff0c\u5176\u4e2d\u7684\u4ee3\u7801\u7b97\u662f\u81ea\u5a31\u81ea\u4e50\u7684\uff0c\u5e0c\u671b\u9ad8\u624b\u4e0d\u8981\u628a\u91cd\u6784\u4e4b\u7c7b\u7684\u7838\u4e0b\u6765&#8230; <BR><BR>1\u3001\u5728windows\u7cfb\u7edf\u4e0b\u7684\u7684C\u76d8\uff0c\u5efa\u4e00\u4e2a\u540d\u53ebs\u7684\u6587\u4ef6\u5939,\u5728\u8be5\u6587\u4ef6\u5939\u91cc\u9762\u968f\u4fbf\u5efa\u4e09\u4e2atxt\u6587\u4ef6\uff0c\u968f\u4fbf\u8d77\u540d\u5566\uff0c\u5c31\u53eb&#8221;1.txt&#8221;,&#8221;2.txt&#8221;\u548c&#8221;3.txt&#8221;\u5566 <BR>\u5176\u4e2d1.txt\u7684\u5185\u5bb9\u5982\u4e0b\uff1a <BR><br \/>\n<DIV class=dp-highlighter><br \/>\n<DIV class=bar><br \/>\n<DIV class=tools>Java\u4ee3\u7801 <\/DIV><\/DIV><br \/>\n<OL class=dp-j><br \/>\n<LI><SPAN><SPAN>\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>\u5168\u56fd\u4eba\u6c11&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=number>2006<\/SPAN><SPAN>\u5e74&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><\/OL><\/DIV><PRE class=java style=\"DISPLAY: none\" name=\"code\">\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd<br \/>\n\u5168\u56fd\u4eba\u6c11<br \/>\n2006\u5e74<\/PRE><BR>\u800c&#8221;2.txt&#8221;\u548c&#8221;3.txt&#8221;\u7684\u5185\u5bb9\u4e5f\u53ef\u4ee5\u968f\u4fbf\u5199\u51e0\u5199\uff0c\u8fd9\u91cc\u61d2\u5199\uff0c\u5c31\u590d\u5236\u4e00\u4e2a\u548c1.txt\u6587\u4ef6\u7684\u5185\u5bb9\u4e00\u6837\u5427 <BR><BR>2\u3001\u4e0b\u8f7d<SPAN class=hilite1>lucene<\/SPAN>\u5305\uff0c\u653e\u5728classpath\u8def\u5f84\u4e2d <BR>\u5efa\u7acb\u7d22\u5f15: <BR><br \/>\n<DIV class=dp-highlighter><br \/>\n<DIV class=bar><br \/>\n<DIV class=tools>Java\u4ee3\u7801 <\/DIV><\/DIV><br \/>\n<OL class=dp-j><br \/>\n<LI><SPAN><SPAN class=keyword>package<\/SPAN><SPAN>&nbsp;lighter.javaeye.com;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.io.BufferedReader;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.io.File;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.io.FileInputStream;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.io.IOException;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.io.InputStreamReader;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.util.Date;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.Analyzer;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.standard.StandardAnalyzer;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.document.Document;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.document.Field;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.index.IndexWriter;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=comment>\/**<\/SPAN>&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=comment>&nbsp;*&nbsp;author&nbsp;lighter&nbsp;date&nbsp;2006-8-7<\/SPAN>&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=comment>&nbsp;*\/<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>public<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>class<\/SPAN><SPAN>&nbsp;TextFileIndexer&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>public<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>static<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>void<\/SPAN><SPAN>&nbsp;main(String[]&nbsp;args)&nbsp;<\/SPAN><SPAN class=keyword>throws<\/SPAN><SPAN>&nbsp;Exception&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=comment>\/*&nbsp;\u6307\u660e\u8981\u7d22\u5f15\u6587\u4ef6\u5939\u7684\u4f4d\u7f6e,\u8fd9\u91cc\u662fC\u76d8\u7684S\u6587\u4ef6\u5939\u4e0b&nbsp;*\/<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;fileDir&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;File(<\/SPAN><SPAN class=string>&#8220;c:\\\\s&#8221;<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=comment>\/*&nbsp;\u8fd9\u91cc\u653e\u7d22\u5f15\u6587\u4ef6\u7684\u4f4d\u7f6e&nbsp;*\/<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;indexDir&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;File(<\/SPAN><SPAN class=string>&#8220;c:\\\\index&#8221;<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Analyzer&nbsp;<SPAN class=hilite1>lucene<\/SPAN>Analyzer&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;StandardAnalyzer();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IndexWriter&nbsp;indexWriter&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;IndexWriter(indexDir,&nbsp;<SPAN class=hilite1>lucene<\/SPAN>Analyzer,&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>true<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File[]&nbsp;textFiles&nbsp;=&nbsp;fileDir.listFiles();&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>long<\/SPAN><SPAN>&nbsp;startTime&nbsp;=&nbsp;<\/SPAN><SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;Date().getTime();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=comment>\/\/\u589e\u52a0document\u5230\u7d22\u5f15\u53bb<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>for<\/SPAN><SPAN>&nbsp;(<\/SPAN><SPAN class=keyword>int<\/SPAN><SPAN>&nbsp;i&nbsp;=&nbsp;<\/SPAN><SPAN class=number>0<\/SPAN><SPAN>;&nbsp;i&nbsp;&lt;&nbsp;textFiles.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>if<\/SPAN><SPAN>&nbsp;(textFiles[i].isFile()&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;textFiles[i].getName().endsWith(<SPAN class=string>&#8220;.txt&#8221;<\/SPAN><SPAN>))&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<SPAN class=string>&#8220;File&nbsp;&#8220;<\/SPAN><SPAN>&nbsp;+&nbsp;textFiles[i].getCanonicalPath()&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<SPAN class=string>&#8220;\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.&#8221;<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp&nbsp;=&nbsp;FileReaderAll(textFiles[i].getCanonicalPath(),&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=string>&#8220;GBK&#8221;<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(temp);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;document&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;Document();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field&nbsp;FieldPath&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;Field(<\/SPAN><SPAN class=string>&#8220;path&#8221;<\/SPAN><SPAN>,&nbsp;textFiles[i].getPath(),&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field.Store.YES,&nbsp;Field.Index.NO);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field&nbsp;FieldBody&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;Field(<\/SPAN><SPAN class=string>&#8220;body&#8221;<\/SPAN><SPAN>,&nbsp;temp,&nbsp;Field.Store.YES,&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field.Index.TOKENIZED,&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field.TermVector.WITH_POSITIONS_OFFSETS);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.add(FieldPath);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.add(FieldBody);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indexWriter.addDocument(document);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=comment>\/\/optimize()\u65b9\u6cd5\u662f\u5bf9\u7d22\u5f15\u8fdb\u884c\u4f18\u5316<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indexWriter.optimize();&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indexWriter.close();&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=comment>\/\/\u6d4b\u8bd5\u4e00\u4e0b\u7d22\u5f15\u7684\u65f6\u95f4<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>long<\/SPAN><SPAN>&nbsp;endTime&nbsp;=&nbsp;<\/SPAN><SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;Date().getTime();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.println(<SPAN class=string>&#8220;\u8fd9\u82b1\u8d39\u4e86&#8221;<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;(endTime&nbsp;&#8211;&nbsp;startTime)&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<SPAN class=string>&#8221;&nbsp;\u6beb\u79d2\u6765\u628a\u6587\u6863\u589e\u52a0\u5230\u7d22\u5f15\u91cc\u9762\u53bb!&#8221;<\/SPAN><SPAN>&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;fileDir.getPath());&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>public<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>static<\/SPAN><SPAN>&nbsp;String&nbsp;FileReaderAll(String&nbsp;FileName,&nbsp;String&nbsp;charset)&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>throws<\/SPAN><SPAN>&nbsp;IOException&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;BufferedReader(<\/SPAN><SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;InputStreamReader(&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;FileInputStream(FileName),&nbsp;charset));&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;String();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;String();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>while<\/SPAN><SPAN>&nbsp;((line&nbsp;=&nbsp;reader.readLine())&nbsp;!=&nbsp;<\/SPAN><SPAN class=keyword>null<\/SPAN><SPAN>)&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;+=&nbsp;line;&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>return<\/SPAN><SPAN>&nbsp;temp;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>}&nbsp;&nbsp;<\/SPAN><\/LI><\/OL><\/DIV><PRE class=java style=\"DISPLAY: none\" name=\"code\">package lighter.javaeye.com;<\/p>\n<p>import java.io.BufferedReader;<br \/>\nimport java.io.File;<br \/>\nimport java.io.FileInputStream;<br \/>\nimport java.io.IOException;<br \/>\nimport java.io.InputStreamReader;<br \/>\nimport java.util.Date;<\/p>\n<p>import org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.Analyzer;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.standard.StandardAnalyzer;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.document.Document;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.document.Field;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.index.IndexWriter;<\/p>\n<p>\/**<br \/>\n * author lighter date 2006-8-7<br \/>\n *\/<br \/>\npublic class TextFileIndexer {<br \/>\n\tpublic static void main(String[] args) throws Exception {<br \/>\n\t\t\/* \u6307\u660e\u8981\u7d22\u5f15\u6587\u4ef6\u5939\u7684\u4f4d\u7f6e,\u8fd9\u91cc\u662fC\u76d8\u7684S\u6587\u4ef6\u5939\u4e0b *\/<br \/>\n\t\tFile fileDir = new File(&#8220;c:\\\\s&#8221;);<\/p>\n<p>\t\t\/* \u8fd9\u91cc\u653e\u7d22\u5f15\u6587\u4ef6\u7684\u4f4d\u7f6e *\/<br \/>\n\t\tFile indexDir = new File(&#8220;c:\\\\index&#8221;);<br \/>\n\t\tAnalyzer <SPAN class=hilite1>lucene<\/SPAN>Analyzer = new StandardAnalyzer();<br \/>\n\t\tIndexWriter indexWriter = new IndexWriter(indexDir, <SPAN class=hilite1>lucene<\/SPAN>Analyzer,<br \/>\n\t\t\t\ttrue);<br \/>\n\t\tFile[] textFiles = fileDir.listFiles();<br \/>\n\t\tlong startTime = new Date().getTime();<\/p>\n<p>\t\t\/\/\u589e\u52a0document\u5230\u7d22\u5f15\u53bb<br \/>\n\t\tfor (int i = 0; i &lt; textFiles.length; i++) {<br \/>\n\t\t\tif (textFiles[i].isFile()<br \/>\n\t\t\t\t\t&amp;&amp; textFiles[i].getName().endsWith(&#8220;.txt&#8221;)) {<br \/>\n\t\t\t\tSystem.out.println(&#8220;File &#8221; + textFiles[i].getCanonicalPath()<br \/>\n\t\t\t\t\t\t+ &#8220;\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.&#8221;);<br \/>\n\t\t\t\tString temp = FileReaderAll(textFiles[i].getCanonicalPath(),<br \/>\n\t\t\t\t\t\t&#8220;GBK&#8221;);<br \/>\n\t\t\t\tSystem.out.println(temp);<br \/>\n\t\t\t\tDocument document = new Document();<br \/>\n\t\t\t\tField FieldPath = new Field(&#8220;path&#8221;, textFiles[i].getPath(),<br \/>\n\t\t\t\t\t\tField.Store.YES, Field.Index.NO);<br \/>\n\t\t\t\tField FieldBody = new Field(&#8220;body&#8221;, temp, Field.Store.YES,<br \/>\n\t\t\t\t\t\tField.Index.TOKENIZED,<br \/>\n\t\t\t\t\t\tField.TermVector.WITH_POSITIONS_OFFSETS);<br \/>\n\t\t\t\tdocument.add(FieldPath);<br \/>\n\t\t\t\tdocument.add(FieldBody);<br \/>\n\t\t\t\tindexWriter.addDocument(document);<br \/>\n\t\t\t}<br \/>\n\t\t}<br \/>\n\t\t\/\/optimize()\u65b9\u6cd5\u662f\u5bf9\u7d22\u5f15\u8fdb\u884c\u4f18\u5316<br \/>\n\t\tindexWriter.optimize();<br \/>\n\t\tindexWriter.close();<\/p>\n<p>\t\t\/\/\u6d4b\u8bd5\u4e00\u4e0b\u7d22\u5f15\u7684\u65f6\u95f4<br \/>\n\t\tlong endTime = new Date().getTime();<br \/>\n\t\tSystem.out<br \/>\n\t\t\t\t.println(&#8220;\u8fd9\u82b1\u8d39\u4e86&#8221;<br \/>\n\t\t\t\t\t\t+ (endTime &#8211; startTime)<br \/>\n\t\t\t\t\t\t+ &#8221; \u6beb\u79d2\u6765\u628a\u6587\u6863\u589e\u52a0\u5230\u7d22\u5f15\u91cc\u9762\u53bb!&#8221;<br \/>\n\t\t\t\t\t\t+ fileDir.getPath());<br \/>\n\t}<\/p>\n<p>\tpublic static String FileReaderAll(String FileName, String charset)<br \/>\n\t\t\tthrows IOException {<br \/>\n\t\tBufferedReader reader = new BufferedReader(new InputStreamReader(<br \/>\n\t\t\t\tnew FileInputStream(FileName), charset));<br \/>\n\t\tString line = new String();<br \/>\n\t\tString temp = new String();<\/p>\n<p>\t\twhile ((line = reader.readLine()) != null) {<br \/>\n\t\t\ttemp += line;<br \/>\n\t\t}<br \/>\n\t\treader.close();<br \/>\n\t\treturn temp;<br \/>\n\t}<br \/>\n}<\/PRE><BR><BR>\u7d22\u5f15\u7684\u7ed3\u679c\uff1a <BR><br \/>\n<DIV class=dp-highlighter><br \/>\n<DIV class=bar><br \/>\n<DIV class=tools>Java\u4ee3\u7801 <\/DIV><\/DIV><br \/>\n<OL class=dp-j><br \/>\n<LI><SPAN><SPAN>File&nbsp;C:\\s\\<\/SPAN><SPAN class=number>1<\/SPAN><SPAN>.txt\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5168\u56fd\u4eba\u6c11<SPAN class=number>2006<\/SPAN><SPAN>\u5e74&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>File&nbsp;C:\\s\\<SPAN class=number>2<\/SPAN><SPAN>.txt\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5168\u56fd\u4eba\u6c11<SPAN class=number>2006<\/SPAN><SPAN>\u5e74&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>File&nbsp;C:\\s\\<SPAN class=number>3<\/SPAN><SPAN>.txt\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5168\u56fd\u4eba\u6c11<SPAN class=number>2006<\/SPAN><SPAN>\u5e74&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>\u8fd9\u82b1\u8d39\u4e86<SPAN class=number>297<\/SPAN><SPAN>&nbsp;\u6beb\u79d2\u6765\u628a\u6587\u6863\u589e\u52a0\u5230\u7d22\u5f15\u91cc\u9762\u53bb!c:\\s&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><\/OL><\/DIV><PRE class=java style=\"DISPLAY: none\" name=\"code\">File C:\\s\\1.txt\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.<br \/>\n\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5168\u56fd\u4eba\u6c112006\u5e74<br \/>\nFile C:\\s\\2.txt\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.<br \/>\n\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5168\u56fd\u4eba\u6c112006\u5e74<br \/>\nFile C:\\s\\3.txt\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.<br \/>\n\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u5168\u56fd\u4eba\u6c112006\u5e74<br \/>\n\u8fd9\u82b1\u8d39\u4e86297 \u6beb\u79d2\u6765\u628a\u6587\u6863\u589e\u52a0\u5230\u7d22\u5f15\u91cc\u9762\u53bb!c:\\s<\/PRE><BR><BR>3\u3001\u5efa\u7acb\u4e86\u7d22\u5f15\u4e4b\u540e\uff0c\u67e5\u8be2\u5566&#8230;. <BR><br \/>\n<DIV class=dp-highlighter><br \/>\n<DIV class=bar><br \/>\n<DIV class=tools>Java\u4ee3\u7801 <\/DIV><\/DIV><br \/>\n<OL class=dp-j><br \/>\n<LI><SPAN><SPAN class=keyword>package<\/SPAN><SPAN>&nbsp;lighter.javaeye.com;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;java.io.IOException;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.Analyzer;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.standard.StandardAnalyzer;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.queryParser.ParseException;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.queryParser.QueryParser;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.search.Hits;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.search.IndexSearcher;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>import<\/SPAN><SPAN>&nbsp;org.apache.<SPAN class=hilite1>lucene<\/SPAN>.search.Query;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN><SPAN class=keyword>public<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>class<\/SPAN><SPAN>&nbsp;TestQuery&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>public<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>static<\/SPAN><SPAN>&nbsp;<\/SPAN><SPAN class=keyword>void<\/SPAN><SPAN>&nbsp;main(String[]&nbsp;args)&nbsp;<\/SPAN><SPAN class=keyword>throws<\/SPAN><SPAN>&nbsp;IOException,&nbsp;ParseException&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hits&nbsp;hits&nbsp;=&nbsp;<SPAN class=keyword>null<\/SPAN><SPAN>;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;queryString&nbsp;=&nbsp;<SPAN class=string>&#8220;\u4e2d\u534e&#8221;<\/SPAN><SPAN>;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;=&nbsp;<SPAN class=keyword>null<\/SPAN><SPAN>;&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IndexSearcher&nbsp;searcher&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;IndexSearcher(<\/SPAN><SPAN class=string>&#8220;c:\\\\index&#8221;<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Analyzer&nbsp;analyzer&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;StandardAnalyzer();&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>try<\/SPAN><SPAN>&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QueryParser&nbsp;qp&nbsp;=&nbsp;<SPAN class=keyword>new<\/SPAN><SPAN>&nbsp;QueryParser(<\/SPAN><SPAN class=string>&#8220;body&#8221;<\/SPAN><SPAN>,&nbsp;analyzer);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query&nbsp;=&nbsp;qp.parse(queryString);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<SPAN class=keyword>catch<\/SPAN><SPAN>&nbsp;(ParseException&nbsp;e)&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>if<\/SPAN><SPAN>&nbsp;(searcher&nbsp;!=&nbsp;<\/SPAN><SPAN class=keyword>null<\/SPAN><SPAN>)&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hits&nbsp;=&nbsp;searcher.search(query);&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN class=keyword>if<\/SPAN><SPAN>&nbsp;(hits.length()&nbsp;&gt;&nbsp;<\/SPAN><SPAN class=number>0<\/SPAN><SPAN>)&nbsp;{&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<SPAN class=string>&#8220;\u627e\u5230:&#8221;<\/SPAN><SPAN>&nbsp;+&nbsp;hits.length()&nbsp;+&nbsp;<\/SPAN><SPAN class=string>&#8221;&nbsp;\u4e2a\u7ed3\u679c!&#8221;<\/SPAN><SPAN>);&nbsp;&nbsp;<\/SPAN><\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>&nbsp;&nbsp;<\/SPAN><\/LI><br \/>\n<LI><SPAN>}&nbsp;&nbsp;<\/SPAN><\/LI><\/OL><\/DIV><PRE class=java style=\"DISPLAY: none\" name=\"code\">package lighter.javaeye.com;<\/p>\n<p>import java.io.IOException;<\/p>\n<p>import org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.Analyzer;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.analysis.standard.StandardAnalyzer;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.queryParser.ParseException;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.queryParser.QueryParser;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.search.Hits;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.search.IndexSearcher;<br \/>\nimport org.apache.<SPAN class=hilite1>lucene<\/SPAN>.search.Query;<\/p>\n<p>public class TestQuery {<br \/>\n\tpublic static void main(String[] args) throws IOException, ParseException {<br \/>\n\t\tHits hits = null;<br \/>\n\t\tString queryString = &#8220;\u4e2d\u534e&#8221;;<br \/>\n\t\tQuery query = null;<br \/>\n\t\tIndexSearcher searcher = new IndexSearcher(&#8220;c:\\\\index&#8221;);<\/p>\n<p>\t\tAnalyzer analyzer = new StandardAnalyzer();<br \/>\n\t\ttry {<br \/>\n\t\t\tQueryParser qp = new QueryParser(&#8220;body&#8221;, analyzer);<br \/>\n\t\t\tquery = qp.parse(queryString);<br \/>\n\t\t} catch (ParseException e) {<br \/>\n\t\t}<br \/>\n\t\tif (searcher != null) {<br \/>\n\t\t\thits = searcher.search(query);<br \/>\n\t\t\tif (hits.length() &gt; 0) {<br \/>\n\t\t\t\tSystem.out.println(&#8220;\u627e\u5230:&#8221; + hits.length() + &#8221; \u4e2a\u7ed3\u679c!&#8221;);<br \/>\n\t\t\t}<br \/>\n\t\t}<br \/>\n\t}<\/p>\n<p>}<\/PRE><BR><BR>\u5176\u8fd0\u884c\u7ed3\u679c\uff1a <BR><br \/>\n<DIV class=quote_title>\u5f15\u7528<\/DIV><br \/>\n<DIV class=quote_div>\u627e\u5230:3 \u4e2a\u7ed3\u679c!<\/DIV><BR>\u5177\u4f53\u7684API\u7684\u7528\u6cd5\uff0c\u8fd9\u91cc\u5c31\u4e0d\u8bf4\u4e86\uff0c\u5177\u4f53\u7684\u505a\u6cd5\u53c2\u8003<SPAN class=hilite1>lucene<\/SPAN>\u7684\u5b98\u65b9\u6587\u6863\u5427&#8230;<br \/>\n<DIV><\/DIV><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;\u8bf4\u660e\u4e00\u4e0b,\u8fd9\u4e00\u7bc7\u6587\u7ae0\u7684\u7528\u5230\u7684lucene,\u662f\u75282.0\u7248\u672c\u7684,\u4e3b\u8981\u5728\u67e5\u8be2\u7684\u65f6\u50192.0\u7248\u672c\u7684lucene\u4e0e\u4ee5\u524d\u7684\u7248\u672c\u6709\u4e86\u4e00\u4e9b\u533a\u522b. \u5176\u5b9e\u8fd9\u4e00\u4e9b\u4ee3\u7801\u90fd\u662f\u65e9\u51e0\u4e2a\u6708\u5199\u7684,\u81ea\u5df1\u5f88\u61d2,\u6240\u4ee5\u5230\u4eca\u5929\u624d\u5199\u5230\u81ea\u5df1\u7684\u535a\u5ba2\u4e0a,\u9ad8\u6df1\u7684\u6587\u7ae0\u81ea\u5df1\u5199\u4e0d\u4e86\uff0c\u53ea\u80fd\u8bb0\u5f55\u4e0b\u4e00\u4e9b\u7b80\u5355\u7684\u8bb0\u5f55\u4e0e\u70b9\u6ef4\uff0c\u5176\u4e2d\u7684\u4ee3\u7801\u7b97\u662f\u81ea\u5a31\u81ea\u4e50\u7684\uff0c\u5e0c\u671b\u9ad8\u624b\u4e0d\u8981\u628a\u91cd\u6784\u4e4b\u7c7b\u7684\u7838\u4e0b\u6765&#8230; 1\u3001\u5728windows\u7cfb\u7edf\u4e0b\u7684\u7684C\u76d8\uff0c\u5efa\u4e00\u4e2a\u540d\u53ebs\u7684\u6587\u4ef6\u5939,\u5728\u8be5\u6587\u4ef6\u5939\u91cc\u9762\u968f\u4fbf\u5efa\u4e09\u4e2atxt\u6587\u4ef6\uff0c\u968f\u4fbf\u8d77\u540d\u5566\uff0c\u5c31\u53eb&#8221;1.txt&#8221;,&#8221;2.txt&#8221;\u548c&#8221;3.txt&#8221;\u5566 \u5176\u4e2d1.txt\u7684\u5185\u5bb9\u5982\u4e0b\uff1a Java\u4ee3\u7801 \u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd&nbsp;&nbsp; \u5168\u56fd\u4eba\u6c11&nbsp;&nbsp; 2006\u5e74&nbsp;&nbsp;\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd \u5168\u56fd\u4eba\u6c11 2006\u5e74\u800c&#8221;2.txt&#8221;\u548c&#8221;3.txt&#8221;\u7684\u5185\u5bb9\u4e5f\u53ef\u4ee5\u968f\u4fbf\u5199\u51e0\u5199\uff0c\u8fd9\u91cc\u61d2\u5199\uff0c\u5c31\u590d\u5236\u4e00\u4e2a\u548c1.txt\u6587\u4ef6\u7684\u5185\u5bb9\u4e00\u6837\u5427 2\u3001\u4e0b\u8f7dlucene\u5305\uff0c\u653e\u5728classpath\u8def\u5f84\u4e2d \u5efa\u7acb\u7d22\u5f15: Java\u4ee3\u7801 package&nbsp;lighter.javaeye.com;&nbsp;&nbsp; &nbsp;&nbsp; import&nbsp;java.io.BufferedReader;&nbsp;&nbsp; import&nbsp;java.io.File;&nbsp;&nbsp; import&nbsp;java.io.FileInputStream;&nbsp;&nbsp; import&nbsp;java.io.IOException;&nbsp;&nbsp; import&nbsp;java.io.InputStreamReader;&nbsp;&nbsp; import&nbsp;java.util.Date;&nbsp;&nbsp; &nbsp;&nbsp; import&nbsp;org.apache.lucene.analysis.Analyzer;&nbsp;&nbsp; import&nbsp;org.apache.lucene.analysis.standard.StandardAnalyzer;&nbsp;&nbsp; import&nbsp;org.apache.lucene.document.Document;&nbsp;&nbsp; import&nbsp;org.apache.lucene.document.Field;&nbsp;&nbsp; import&nbsp;org.apache.lucene.index.IndexWriter;&nbsp;&nbsp; &nbsp;&nbsp; \/**&nbsp; &nbsp;*&nbsp;author&nbsp;lighter&nbsp;date&nbsp;2006-8-7&nbsp; &nbsp;*\/&nbsp;&nbsp; public&nbsp;class&nbsp;TextFileIndexer&nbsp;{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;Exception&nbsp;{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*&nbsp;\u6307\u660e\u8981\u7d22\u5f15\u6587\u4ef6\u5939\u7684\u4f4d\u7f6e,\u8fd9\u91cc\u662fC\u76d8\u7684S\u6587\u4ef6\u5939\u4e0b&nbsp;*\/&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;fileDir&nbsp;=&nbsp;new&nbsp;File(&#8220;c:\\\\s&#8221;);&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*&nbsp;\u8fd9\u91cc\u653e\u7d22\u5f15\u6587\u4ef6\u7684\u4f4d\u7f6e&nbsp;*\/&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;indexDir&nbsp;=&nbsp;new&nbsp;File(&#8220;c:\\\\index&#8221;);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Analyzer&nbsp;luceneAnalyzer&nbsp;=&nbsp;new&nbsp;StandardAnalyzer();&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IndexWriter&nbsp;indexWriter&nbsp;=&nbsp;new&nbsp;IndexWriter(indexDir,&nbsp;luceneAnalyzer,&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File[]&nbsp;textFiles&nbsp;=&nbsp;fileDir.listFiles();&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;startTime&nbsp;=&nbsp;new&nbsp;Date().getTime();&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u589e\u52a0document\u5230\u7d22\u5f15\u53bb&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;textFiles.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(textFiles[i].isFile()&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;textFiles[i].getName().endsWith(&#8220;.txt&#8221;))&nbsp;{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#8220;File&nbsp;&#8220;&nbsp;+&nbsp;textFiles[i].getCanonicalPath()&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&#8220;\u6b63\u5728\u88ab\u7d22\u5f15&#8230;.&#8221;);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp&nbsp;=&nbsp;FileReaderAll(textFiles[i].getCanonicalPath(),&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;GBK&#8221;);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(temp);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;document&nbsp;=&nbsp;new&nbsp;Document();&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field&nbsp;FieldPath&nbsp;=&nbsp;new&nbsp;Field(&#8220;path&#8221;,&nbsp;textFiles[i].getPath(),&nbsp;&nbsp; &hellip; <a href=\"https:\/\/www.strongd.net\/?p=469\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">lucene\u7684\u7b80\u5355\u5b9e\u4f8b<\u4e00><\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[75],"class_list":["post-469","post","type-post","status-publish","format-standard","hentry","category-java","category-linux","tag-lucene"],"_links":{"self":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=469"}],"version-history":[{"count":1,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/469\/revisions"}],"predecessor-version":[{"id":901,"href":"https:\/\/www.strongd.net\/index.php?rest_route=\/wp\/v2\/posts\/469\/revisions\/901"}],"wp:attachment":[{"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strongd.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}