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筆記
主站蜘蛛池模板:
99在线精品免费视频九九视
|
久久久99精品免费观看
|
四虎在线视频免费观看
|
亚洲一卡2卡4卡5卡6卡残暴在线
|
国产男女猛烈无遮挡免费视频网站
|
亚洲免费闲人蜜桃
|
亚洲福利一区二区三区
|
国产精品亚洲二区在线
|
777爽死你无码免费看一二区
|
中文字幕亚洲综合精品一区
|
麻豆高清免费国产一区
|
亚洲午夜无码久久久久小说
|
免费一级毛片在线播放
|
亚洲日韩av无码中文
|
午夜精品在线免费观看
|
黄页视频在线观看免费
|
成人黄18免费视频
|
污污视频免费观看网站
|
亚洲AV无码专区亚洲AV伊甸园
|
看亚洲a级一级毛片
|
亚洲综合国产精品第一页
|
久草免费福利资源站
|
亚洲一卡2卡4卡5卡6卡残暴在线
|
成人永久免费高清
|
你懂的免费在线观看
|
亚洲一区中文字幕在线电影网
|
亚洲国产日产无码精品
|
全免费a级毛片免费看不卡
|
久久久久久毛片免费看
|
四虎永久在线精品免费影视
|
无码人妻AV免费一区二区三区
|
亚洲人成激情在线播放
|
四虎永久免费影院在线
|
免费国产成人午夜在线观看
|
国产成人99久久亚洲综合精品
|
无码AV片在线观看免费
|
久久亚洲精品无码av
|
亚洲高清在线视频
|
亚洲AV无码一区二区大桥未久
|
久久久久亚洲AV成人网人人网站
|
无码AV动漫精品一区二区免费
|