• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    基于J2EE的Blog平臺

    發布: 2008-6-26 14:17 | 作者: 不詳 | 來源: 測試時代編輯整理 | 查看: 70次 | 進入軟件測試論壇討論

    領測軟件測試網

    實現RSS
      RSS是一個標準的XML文件,Rss閱讀器可以讀取這個XML文件獲得文章的信息,使用戶可以通過Rss閱讀器而非瀏覽器閱讀Blog,我們只要動態生成這個XML文件便可以了。RSSLibJ是一個專門讀取和生成RSS的小巧實用的Java庫,大小僅25k,可以從
    http://sourceforge.net/projects/rsslibj/下載rsslibj-1_0RC2.jar和它需要的EXMLjar兩個文件,然后復制到web/WEB-INF/lib/下。
      使用RSSLibJ異常簡單,我們先設置好HttpServletResponse的Header,然后通過RSSLibJ輸出XML即可:

    Channel channel = new Channel();
    channel.setDescription(account.getDescription());
    baseUrl = baseUrl.substring(0, n);
    channel.setLink("
    http://server-name/home.c?accountId=" + accountId);
    channel.setTitle(account.getTitle());
    List articles = facade.getArticles(accountId, account.getMaxPerPage(), 1);
    Iterator it = articles.iterator();
    while(it.hasNext()) {
        Article article = (Article)it.next();
        channel.addItem("
    http://server-name/article.c?articleId=" + article.getArticleId(),
            article.getSummary(), article.getTitle()
        );
    }
    // 輸出xml:
    response.setContentType("text/xml");
    PrintWriter pw = response.getWriter();
    pw.print(channel.getFeed("rss"));
    pw.close();

    實現全文搜索
      全文搜索能大大方便用戶快速找到他們希望的文章,為blog增加一個全文搜索功能是非常必要的。然而,全文搜索不等于SQL的LIKE語句,因為關系數據庫的設計并不是為全文搜索設計的,數據庫索引對全文搜索無效,在一個幾百萬條記錄中檢索LIKE '%A%'可能會耗時幾分鐘,這是不可接受的。幸運的是,我們能使用免費并且開源的純Java實現的Lucene全文搜索引擎,Lucene可以非常容易地集成到我們的blog中。
      Lucene不提供直接對文件,數據庫的索引,只提供一個高性能的引擎,但接口卻出人意料地簡單。我們只需要關心以下幾個簡單的接口:
      Document:代表Lucene數據庫的一條記錄,也代表搜索的一條結果。
      Field:一個Document包含一個或多個Field,類似關系數據庫的字段。
      IndexWriter:用于創建新的索引,也就是向數據庫添加新的可搜索的大段字符串。
      Analyzer:將字符串拆分成單詞(Token),不同的文本對應不同的Analyzer,如HtmlAnalyzer,PDFAnalyzer。
      Query:封裝一個查詢,用于解析用戶輸入。例如,將“bea blog”解析為“同時包含bea和blog的文章”。
      Searcher:搜索一個Query,結果將以Hits返回。
      Hits:封裝一個搜索結果,包含Document集合,能非常容易地輸出結果。
      下一步,我們需要為Article表的content字段建立全文索引。首先為Lucene新建一個數據庫,請注意這個數據庫是Lucene專用的,我們不能也不必知道它的內部結構。Lucene的每個數據庫對應一個目錄,只需要指定目錄即可:

    String indexDir = "C:/search/blog";
    IndexWriter indexWriter = new IndexWriter(indexDir, new StandardAnalyzer(), true);
    indexWriter.close();

      然后添加文章,讓Lucene對其索引:

    String title = "文章標題" // 從數據庫讀取
    String content = "文章內容" // 從數據庫讀取
    // 打開索引:

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>