排序的關鍵點有兩個:
1:首先你要排序的字段必須是被index的,並且是untokenized的。
如:doc.add(
newfield(
"time
", dv.get(
"time
").tostring(), field.store.no, field.index.un_tokenized));
// dv.get("
time
").tostring()是字串,2.2版本的field的建構函式沒有date,long型別,所以要把時間轉化為yyyy-mm-dd或yyyy-mm-dd hh mm ss 形式(不能兩種格式,不然結果有問題),不必將時間轉為數字,沒有那樣的建構函式。搜尋時可選sortfield.int,或別的
2:在檢索時候:
如:
/***** 排序 *****/
/** 1.被排序的字段必須被索引過(indexecd),在索引時不能 用 field.index.tokenized
* (用un_tokenized可以正常實現.用no時查詢正常,但排序不能正常設定公升降序)
* 2.sortfield型別
* score、doc、auto、string、int、float、custom 此型別主要是根據欄位的型別選擇
* 3.sortfield的第三個引數代表是否是降序true:降序 false:公升序
*/sort sort = new sort(new sortfield);
hits hits = searcher.search(querystring,sort);
/** 按日期排序
*/sort sort = new sort(new sortfield);
/***** 過濾器 ******/
queryparser qp1 = new queryparser("content",analyzer);
query fquery = qp1.parse("我");
booleanquery bqf = new booleanquery();
bqf.add(fquery,booleanclause.occur.should);
queryfilter qf = new queryfilter(bqf);
hits hits = searcher.search(query);
ls 按時間排序
在linux系統中,使用ls命令按時間排序檔案,其實很簡單,如下 ls altr 即可按時間排序當前目錄下的檔案。附,ls命令的引數中文詳解 a 列出目錄下的所有檔案,包括以 開頭的隱含檔案。b 把檔名中不可輸出的字元用反斜槓加字元編號 就象在c語言裡一樣 的形式列出。c 輸出檔案的 i 節點的修改...
js 資料按時間排序
運用了sort 方法進行排序 說明 如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串 如有必要 以便進行比較。如果想按照其他標準進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回乙個用於...
先按時間排序,再按姓名排序 sql語句
將字段依次寫在order by 後面即可 中間用逗號隔開 select from 表 order by time name select from 表 order by time asc name asc select from 表 order by time desc name desc sele...