關於nutch1.0二次開發需要更改的東西

二次開發的時候,需要重點對Nutch的界面及界面顯示數據進行適當的調整。

目前據我瞭解到的要修改的地方有以下幾點:

1。搜索頁面頁頭頁尾log修改、選項卡亂碼顯示問題。
2。顯示查詢結果行   添加查詢用時
3。查詢結果摘要長度修改,默認只有20個字符。
4。網頁快照亂碼修改,以及後面的(評分詳解) (anchors) (more from news.qq.com)菜單項修改。
5。show all hits修改
6。分頁功能修改,源碼只有下一頁功能。
7。文本高亮顯示。


改變摘要長度,在文件nutch-site.xml中
<configuration>
...
<property>
<name>searcher.summary.length</name>
<value>100</value>//默認爲20
<description>
        The total number of terms to display in a hit summary.
</description>
</property>
...
</configuration>


所謂網頁快照及搜索引擎服務器端存儲的網頁副本。Nutch通過關鍵字進行搜索網頁的時候,會查詢出這個關鍵字對應的相關信息,比 如:title、url、content等等。通過URL可以鏈接到該URL對應的網頁。而網頁快照其實是Nutch爬蟲爬取下來的網頁內容。因此,當點 擊網頁快照時,我們根據索引文檔的ID,去索引出原網頁內容。該源代碼在查詢服務系統中的 cache.jsp中,下面是相關代碼:
Hit hit = new Hit(Integer.parseInt(request.getParameter("idx")),
                    request.getParameter("id"));
HitDetails details = bean.getDetails(hit);
….

String content = new String(bean.getContent(details));
另外還涉及到Nutch 網頁快照的中文問題,中文時採用UTF-8取得內容就行了。
修改cached.jsp,把
content = new String( bean.getContent(details) );
改成
content = new String( bean.getContent(details) ,"utf-8");
如果需要對內容的顯示方面做一些修改的話,通過該頁面也可以修改。


高亮顯示涉及到的類爲:org.apache.nutch.searcher.Summary,修改該類即可:
public String toHtml(boolean encode) {
    Fragment fragment = null;
    StringBuffer buf = new StringBuffer();
    for (int i=0; i<fragments.size(); i++) {
      fragment = (Fragment) fragments.get(i);
      if (fragment.isHighlight()) {
        buf.append("<span style=/"color:red /" >")    // 修改前語句 buf.append("<span style=/"hightlight /" >")   
           .append(encode ? Entities.encode(fragment.getText())
                          : fragment.getText())
           .append("</span>");
      } else if (fragment.isEllipsis()) {
        buf.append("<span class=/"ellipsis/"> ... </span>");
      } else {
        buf.append(encode ? Entities.encode(fragment.getText())
                          : fragment.getText());
      }
    }
    return buf.toString();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章