首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

lucene3.5示范

2012-09-09 
lucene3.5示例lucene中,很多方法都不推荐使用了,写个示例?public class IndexerCreate {private static An

lucene3.5示例

lucene中,很多方法都不推荐使用了,写个示例

?

public class IndexerCreate {private static Analyzer luceneAnalyzer = new IKAnalyzer();private static Directory indexDir = new RAMDirectory();//    private static Directory indexDir;//    static{//        try {//            indexDir = new SimpleFSDirectory(new File("D:/indexer"));//        } catch (IOException e) {//            e.printStackTrace();//        }//    }    public static void main(String[] args) throws Exception {        create();        search();    }public static void create() throws Exception{        IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35,luceneAnalyzer);        config.setOpenMode(OpenMode.CREATE);        IndexWriter indexWriter = new IndexWriter(indexDir,config);        Document doc1 = new Document();        doc1.add(new Field("id","1",Store.YES,Index.ANALYZED));        doc1.add(new Field("name","liangge",Store.YES,Index.ANALYZED));        doc1.add(new Field("content","我是中国人",Store.YES,Index.ANALYZED));        Document doc2 = new Document();        doc2.add(new Field("id","2",Store.YES,Index.ANALYZED));        doc2.add(new Field("name","liangge is a girl",Store.YES,Index.ANALYZED));        doc2.add(new Field("content","liangge am a good girl",Store.YES,Index.ANALYZED));//删除重复索引//        String id1 = doc1.getFieldable("id").stringValue();//        Term term1 = new Term("id",id1);//        indexWriter.deleteDocuments(term1);//        String id2 = doc2.getFieldable("id").stringValue();//        Term term2 = new Term("id",id2);//        indexWriter.deleteDocuments(term2);                indexWriter.addDocument(doc1);        indexWriter.addDocument(doc2);        indexWriter.close();    }public static void search() throws Exception{        String queryString = "liangge";        String[] fields = {"name","content"};        QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_35, fields, luceneAnalyzer);        Query query = queryParser.parse(queryString);//        IndexReader reader = IndexReader.open(FSDirectory.open(new File(indexPath)));        IndexReader reader = IndexReader.open(indexDir);        IndexSearcher searcher = new IndexSearcher(reader);        TopScoreDocCollector results = TopScoreDocCollector.create(2, false);        searcher.search(query, results);        TopDocs topDocs = results.topDocs(0, 1);        System.out.println(topDocs.totalHits);for(ScoreDoc scoreDoc : topDocs.scoreDocs){            Document doc = searcher.doc(scoreDoc.doc);            System.out.println(doc.get("name"));            System.out.println(doc.get("content"));        }    }}
?

?

热点排行