zoukankan      html  css  js  c++  java
  • 使用LuceneUtil工具类,完成CURD操作

    package loaderman.curd;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import loaderman.entity.Article;
    import loaderman.util.LuceneUtil;
    import org.apache.lucene.document.Document;
    import org.apache.lucene.index.IndexWriter;
    import org.apache.lucene.index.Term;
    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.junit.Test;
    
    
    
    /**
     * 增删改查索引库
     * @author AdminTC
     */
    public class ArticleDao {
        @Test
        public void add() throws Exception{
            Article article = new Article(1,"培训","传智是一家java培训机构");
            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,"培训","传智是一家java培训机构");
            Document document1 = LuceneUtil.javabean2document(article1);
            indexWriter.addDocument(document1);
    
            Article article2 = new Article(2,"培训","传智是一家net培训机构");
            Document document2 = LuceneUtil.javabean2document(article2);
            indexWriter.addDocument(document2);
    
            Article article3 = new Article(3,"培训","传智是一家php培训机构");
            Document document3 = LuceneUtil.javabean2document(article3);
            indexWriter.addDocument(document3);
    
            Article article4 = new Article(4,"培训","传智是一家ios培训机构");
            Document document4 = LuceneUtil.javabean2document(article4);
            indexWriter.addDocument(document4);
    
            Article article5 = new Article(5,"培训","传智是一家ui培训机构");
            Document document5 = LuceneUtil.javabean2document(article5);
            indexWriter.addDocument(document5);
    
            Article article6 = new Article(6,"培训","传智是一家c++培训机构");
            Document document6 = LuceneUtil.javabean2document(article6);
            indexWriter.addDocument(document6);
    
            Article article7 = new Article(7,"培训","传智是一家seo培训机构");
            Document document7 = LuceneUtil.javabean2document(article7);
            indexWriter.addDocument(document7);
    
            indexWriter.close();
        }
        @Test
        public void update() throws Exception{
            Article newArticle = new Article(1,"培训","传智是一家JAVA培训机构");
            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 );
            }
        }
    }
  • 相关阅读:
    使用本地系统帐户和域用户帐户两者区别(microsoft SQLServer2000)(ZT)
    Winform中消息循环、异步操作、Control.Invoke&Control.BeginInvoke学习
    SQL字符串的分组聚合(ZT)
    一次项目维护案例而对事务学习的笔记
    NOIP2011提高组 选择客栈
    NOIP2012提高组 Day 2 Problem 2 借教室
    201793模拟赛T2 取数(win)
    201793模拟赛T1 卡片(card)
    01Dart 变量常量
    01TypeScript 基础类型
  • 原文地址:https://www.cnblogs.com/loaderman/p/10059163.html
Copyright © 2011-2022 走看看