Raymond
Java筆記
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2006年2月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
統計
隨筆 - 21
文章 - 2
評論 - 6
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
Java(9)
(rss)
JavaScript
(rss)
Software Engineering
(rss)
技術雜談(1)
(rss)
網頁技術(1)
(rss)
隨筆檔案
2006年3月 (2)
2006年2月 (4)
2006年1月 (8)
2005年12月 (7)
文章分類
Java(2)
(rss)
JavaScript
(rss)
技術漫談
(rss)
軟件過程
(rss)
文章檔案
2006年3月 (2)
Java
Java視線論壇
(rss)
技術漫談
itpub.net
曾登高
數據庫
網頁技術(HTML/JavaScript/CSS)
軟件過程
搜索
最新評論
1.?re: 使用TPTP和eclipse進行Profiling(剖析)-簡介
我支持你,整理過的東西就是自己的東西。
--fenixshadow
2.?re: 使用TPTP和eclipse進行Profiling(剖析)-簡介
怎么總是復制過來復制過去!沒一點自己的意見嗎
--靠
3.?re: DOM的Document對象轉換到String的中文編碼(亂碼)問題
謝謝你,你的文章幫助了我:)
--AA
4.?re: [導入]網頁模塊拖放
還可以啊~~
--a文學網—相思無語
5.?re: 實現隊列的JavaScript對象
日,為什么不能放首頁,我覺得不錯
--williamxs
閱讀排行榜
1.?使用TPTP和eclipse進行Profiling(剖析)-簡介(5634)
2.?DOM的Document對象轉換到String的中文編碼(亂碼)問題(3904)
3.?在lucene實現按關鍵字出現次數排序的列表(1738)
4.?使用JMeter進行壓力測試(1570)
5.?ANT 的javax.xml.parsers.FactoryConfigurationError 錯誤解決辦法(1567)
評論排行榜
1.?使用TPTP和eclipse進行Profiling(剖析)-簡介(2)
2.?實現隊列的JavaScript對象(2)
3.?DOM的Document對象轉換到String的中文編碼(亂碼)問題(1)
4.?[導入]網頁模塊拖放(1)
5.?使用Struts(0)
在lucene實現按關鍵字出現次數排序的列表
需求: 在lucene索引中建立了很多關鍵字的索引,想獲得一個當前用戶的關鍵字列表,并且每個關鍵字還帶有使用了多少次的信息。
解決方法:
使用自定義的HitCollector對象,代碼如下
import
java.io.IOException;
import
java.util.ArrayList;
import
java.util.Collections;
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.Set;
import
org.apache.lucene.document.Document;
import
org.apache.lucene.search.HitCollector;
import
org.apache.lucene.search.IndexSearcher;
public
class
TagCollector
extends
HitCollector
{
private
IndexSearcher searcher;
private
HashMap
<
String,Integer
>
tagList
=
new
HashMap
<
String,Integer
>
();
public
TagCollector(IndexSearcher searcher)
{
this
.searcher
=
searcher;
}
@Override
public
void
collect(
int
docID,
float
score)
{
try
{
Document doc
=
searcher.doc(docID);
String[] tagValues
=
doc.getValues(
"
tag
"
);
if
(tagValues
!=
null
)
{
for
(
int
i
=
0
;i
<
tagValues.length;i
++
)
{
addTagCount(tagValues[i]);
}
}
}
catch
(IOException e)
{
e.printStackTrace();
}
}
private
void
addTagCount(String tagName)
{
int
count
=
1
;
if
(tagList.containsKey(tagName))
{
count
=
(Integer)tagList.get(tagName)
+
1
;
}
tagList.put(tagName,count);
}
public
HashMap
<
String,Integer
>
getTagList()
{
return
tagList;
}
@SuppressWarnings(
"
unchecked
"
)
public
ArrayList
<
TagSummary
>
getSortedTagList(
boolean
ascending)
{
ArrayList
<
TagSummary
>
list
=
new
ArrayList
<
TagSummary
>
();
Iterator keyIterator
=
tagList.keySet().iterator();
while
(keyIterator.hasNext())
{
String key
=
(String)keyIterator.next();
int
value
=
tagList.get(key);
list.add(
new
TagSummary(key,value));
}
Collections.sort(list);
if
(
!
ascending)
{
Collections.reverse(list);
}
return
list;
}
}
功能說明: 每個搜索到的hits,都會調用這個方法的collect方法,因此可以在這個對象當中放一個HashMap,累計記錄每個關鍵字得到的次數。
排序部分用另外的一個TagSummary類來獲得,這里就不詳細給出了。
問題: 這是一個直觀的方法,但是相信頻繁調用這樣的方法會造成服務器的嚴重負擔。可以考慮一下用緩存的方法,在沒有關鍵字未曾發生改變之前,只在第一次調用這樣的方法,之后把結果緩存在數據表或者內存當中。有更新的時候,通過版本號對比以決定是否需要更新。
posted on 2006-02-04 14:26
Raymond的Java筆記
閱讀(1738)
評論(0)
編輯
收藏
所屬分類:
Java
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
不同方法遍歷列表的時間效率
使用JMeter進行壓力測試
使用TPTP和eclipse進行Profiling(剖析)-簡介
Volatile Fields
在lucene實現按關鍵字出現次數排序的列表
Resin + Struts 的中文亂碼問題解決
Java判定字符是否中文
實現隊列的JavaScript對象
Resin 編譯的奇怪問題解決
Powered by:
BlogJava
Copyright © Raymond的Java筆記
主站蜘蛛池模板:
怡红院免费的全部视频
|
亚洲国产美女精品久久久
|
国产精品黄页免费高清在线观看
|
好大好硬好爽免费视频
|
精品亚洲AV无码一区二区三区
|
91制片厂制作传媒免费版樱花
|
亚洲综合无码一区二区
|
99久在线国内在线播放免费观看
|
久久久久亚洲Av片无码v
|
国内永久免费crm系统z在线
|
国产亚洲精品a在线无码
|
久久精品视频免费
|
久久综合亚洲色HEZYO社区
|
国产成人精品免费视频动漫
|
亚洲国产精品无码久久久
|
AA免费观看的1000部电影
|
最新亚洲卡一卡二卡三新区
|
美女视频黄的全免费视频网站
|
国产99在线|亚洲
|
国产伦精品一区二区三区免费迷
|
国产高清免费在线
|
老牛精品亚洲成av人片
|
亚洲AV无码乱码在线观看性色扶
|
亚洲日韩中文在线精品第一
|
4hu四虎免费影院www
|
亚洲大尺度无码无码专区
|
国产又大又粗又长免费视频
|
国产午夜亚洲精品
|
亚洲色欲久久久久综合网
|
免费在线看污视频
|
亚洲中文久久精品无码1
|
国产伦精品一区二区三区免费下载
|
成人a毛片免费视频观看
|
国产亚洲综合网曝门系列
|
久久不见久久见免费视频7
|
亚洲第一综合天堂另类专
|
亚洲人成色77777
|
成年女人午夜毛片免费看
|
一级看片免费视频
|
亚洲成AV人综合在线观看
|
朝桐光亚洲专区在线中文字幕
|