lucene增刪改查

/**
 * 增刪改查索引庫
 * @author AdminTC
 */
public class ArticleDao {
    @Test
    public void add() throws Exception{
        Article article = new Article(1,"高考","高考第一天,第一天");
        Document document = LuceneUtil.javabean2document(article);
        IndexWriter indexWriter = new IndexWriter(LuceneUtil.getDirectory(),LuceneUtil.getAnalyzer(),LuceneUtil.getMaxFieldLength());
        indexWriter.addDocument(document);//核心
        indexWriter.close();
    }
    @Test
    public void addAll() throws Exception{
        IndexWriter indexWriter = new IndexWriter(LuceneUtil.getDirectory(),LuceneUtil.getAnalyzer(),LuceneUtil.getMaxFieldLength());
        
        Article article1 = new Article(1, "高考","高考第一天,第一天" );
        Document document1 = LuceneUtil.javabean2document(article1);
        indexWriter.addDocument(document1);
        
        Article article2 = new Article(2, "高考","高考次日,次日" );
        Document document2 = LuceneUtil.javabean2document(article2);
        indexWriter.addDocument(document2);
        
        Article article3 = new Article(3, "高考","高考第三天,第三天" );
        Document document3 = LuceneUtil.javabean2document(article3);
        indexWriter.addDocument(document3);
        
        Article article4 = new Article(4, "高考","高考第四天,第四天" );
        Document document4 = LuceneUtil.javabean2document(article4);
        indexWriter.addDocument(document4);
        
        Article article5 = new Article(5, "高考","高考第五天,第五天" );
        Document document5 = LuceneUtil.javabean2document(article5);
        indexWriter.addDocument(document5);
        
        Article article6 = new Article(6, "高考","高考第六天,第六天" );
        Document document6 = LuceneUtil.javabean2document(article6);
        indexWriter.addDocument(document6);
        
        Article article7 = new Article(7, "高考","高考第七天,第七天" );
        Document document7 = LuceneUtil.javabean2document(article7);
        indexWriter.addDocument(document7);
        
        indexWriter.close();
    }
    @Test
    public void update() throws Exception{
        Article newArticle = new Article(1, "高考","高考第一天,第一天,好難" );
        Document document = LuceneUtil.javabean2document(newArticle);
        IndexWriter indexWriter = new IndexWriter(LuceneUtil.getDirectory(),LuceneUtil.getAnalyzer(),LuceneUtil.getMaxFieldLength());
        //更新id=7的document對象
        /*
         * 參數一:term表示須要更新的document對象,id表示document對象中的id屬性,7表示該id屬性的值
         * 參數二:新的document對象
         */
        indexWriter.updateDocument(new Term("id","1"),document);//核心
        indexWriter.close();
    }
    @Test
    public void delete() throws Exception{
        IndexWriter indexWriter = new IndexWriter(LuceneUtil.getDirectory(),LuceneUtil.getAnalyzer(),LuceneUtil.getMaxFieldLength());
        indexWriter.deleteDocuments(new Term("id","2"));//核心
        indexWriter.close();
    }
    @Test
    public void deleteAll() throws Exception{
        IndexWriter indexWriter = new IndexWriter(LuceneUtil.getDirectory(),LuceneUtil.getAnalyzer(),LuceneUtil.getMaxFieldLength());
        indexWriter.deleteAll();//核心
        indexWriter.close();
    }
    
        
    
    
    
    
    
    @Test
    public void findAllByKeywords() throws Exception{
        String keywords = "考";
        List<Article> articleList = new ArrayList<Article>();
        QueryParser queryParser = new QueryParser(LuceneUtil.getVersion(),"content",LuceneUtil.getAnalyzer());
        Query query = queryParser.parse(keywords);//不可爲空格
        IndexSearcher indexSearcher = new IndexSearcher(LuceneUtil.getDirectory());
        TopDocs topDocs = indexSearcher.search(query,100);//核心
        for(int i=0;i<topDocs.scoreDocs.length;i++){
            ScoreDoc scoreDoc = topDocs.scoreDocs[i];
            int no = scoreDoc.doc;
            Document document = indexSearcher.doc(no);
            Article article = (Article)LuceneUtil.document2javabean(document,Article.class);
            articleList.add(article);
        }
        for(Article a : articleList){
            System.out.println( a );
        }
    }
}java

相關文章
相關標籤/搜索