我無法搜尋我要的詞彙(鼻涕),我這是有少打甚麼?為何只會搜尋到0筆資料。
可以給個起手式嗎?
懇請賜教~
Lucene 3.0.0 API
http://www.jarvana.com/jarvana/view/org/apache/lucene/lucene-core/3.0.0/lucene-core-3.0.0-javadoc.jar!/index.html?org/apache/lucene/util/Version.html
[Index code]
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.DateTools;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Version;
public class Indexer
{
public static void main(String[] args) throws IOException
{
String Idx = "C:\\test\\Idx";
String dateDir = "C:\\test\\Data";
IndexWriter indexWriter = null;
Directory dir = new SimpleFSDirectory(new File(Idx));
indexWriter = new IndexWriter(dir,new StandardAnalyzer(Version.LUCENE_30),true,IndexWriter.MaxFieldLength.UNLIMITED);
File[] files = new File(dateDir).listFiles();
for (int i = 0; i < files.length; i++)
{
Document doc = new Document();
doc.add(new Field("contents", new FileReader(files[i])));
doc.add(new Field("filename", files[i].getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("indexDate",DateTools.dateToString(new Date(), DateTools.Resolution.DAY),Field.Store.YES,Field.Index.NOT_ANALYZED));
indexWriter.addDocument(doc);
}
System.out.println("numDocs"+indexWriter.numDocs());
indexWriter.close();
}
}
[END]
[Searcher code]
import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Version;
public class Searcher
{
public static void main(String[] args) throws IOException, ParseException
{
String Idx = "C:\\test\\Idx";
Directory dir = new SimpleFSDirectory(new File(Idx));
IndexSearcher indexSearch = new IndexSearcher(dir);
QueryParser queryParser = new QueryParser(Version.LUCENE_30, "contents", new StandardAnalyzer(Version.LUCENE_30));
Query query = queryParser.parse("鼻涕"); //key Query term
TopDocs hits = indexSearch.search(query, 500);
System.out.println("找到"+hits.totalHits+"個");
for (int i = 0; i < hits.scoreDocs.length; i++)
{
ScoreDoc sdoc = hits.scoreDocs[i];
Document doc = indexSearch.doc(sdoc.doc);
System.out.println(doc.get("filename"));
}
indexSearch.close();
}
}
[END]
訊息回應如下圖:
http://img263.imageshack.us/f/bug03.jpg/