lucene 索引日期與索引數字和排序

2021-05-17 13:59:34 字數 702 閱讀 4223

一、索引日期

1、field.keyword(string,date)方法和datefield類進行索引

索引今天的日期可以這麼做:

document doc=new document();

doc.add(field.keyword("indexdate",new date()));

lucene內部使用了datefield類將日期轉成字串。

2、可以先轉換為yyyymmdd格式的字串,再使用fiedl.keyword(string,string)方法。使用這種方式的另乙個充分的理由是可以索引1970.1.1以前的日期。

3、字串的排列是以字典順序排列的。

二、索引數字

1、lucene通過在內部將數值處理為字串的方式索引數值。如果需要索引的數字在自由形式文字出現,要選擇支援數字的analyzer類,可選擇whitespaceanalyzer和standardanalyzer,能把數字提取為乙個語彙單元並傳遞到索引中。

2、僅有單個數字值不要分析,可做為keyword索引

3、lucene是按字典順序排序,因此10,6,91為字典順序,必須前補充0為:10,06,91,這樣排序後為06,10,91

三、索引field物件用於排序

1.如果希望能按某個域物件排序,它必須是乙個被索引但不被語彙單元化的域物件增加到文件中.

2.域物件必須是可轉換成整形、浮點型、字串型。

Lucene五(新增日期和數字型別索引)

日期和數字型別索引可以使用numericfield物件來新增,建立索引 搜尋 測試的 如下 public class indexutil private string emails private string contents private date dates null private int...

Lucene 索引優化 引數詳解

indexwriter 1 maxfieldlength 預設值 10000 一般設定為integer.max value。即擷取該域中的前10000個項 或片語 進行索引並被檢索,前10000個以外的項將不被索引和檢索。該值可在索引中隨時更改,並即時生 效 僅對更改後的索引生效,前面的依舊 2 s...

lucene 利用記憶體中索引和多執行緒提高索引效率

1 ramdirectory和fsdirectory對比 ramdirectory在記憶體中所進行的操作比fsdirectory在磁碟上所完成的工作要快得多。2 即使使用索引引數來使lucene減少在磁碟上合併段的頻率,基於fsdirectory的索引還要把它們寫入磁碟,而ramdirectory完...