<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    LetsCoding.cn

    天地之間有桿秤,拿秤砣砸老百姓。

    Lucene源碼分析筆記之[org.apache.lucene.document](四)

    綜述:文檔(Document由字段組成(Field),字段由字段名(name)和內容(fieldsDate)組成。

    Field類系

    1.Field類系層次圖
     

    2.部分代碼及說明

    Fieldable接口

    Fieldable定義了如下的一系列的方法聲明,這些方法在AbstractFieldField中得以實現。

     1void setBoost(float boost); // boost因子
     2float getBoost();
     3String name();    // 字段名
     4public String stringValue();    // 以String的形式字段內容
     5public Reader readerValue();    // 以Reader的形式返回字段內容
     6public byte[] binaryValue();    // 以byte[]的形式返回字段內容
     7public TokenStream tokenStreamValue();    // 以TokenStream的形式返回字段內容
     8boolean isStored();    // 返回該字段是否存儲
     9boolean isIndexed();    // 返回該字段是否被索引
    10boolean isTokenized();    // 返回該字段是否被分詞
    11boolean isCompressed();    // 返回該字段是否壓縮存儲
    12boolean isTermVectorStored();    // 用于索引此字段的terms是否以term vector保存
    13boolean isStoreOffsetWithTermVector();    // 是否保存該字段term的偏移信息(tvf)
    14boolean isStorePositionWithTermVector();    // 是否保存該字段term的位置信息(tvf)
    15boolean getOmitNorms();
    16void setOmitNorms(boolean omitNorms);
    17boolean isLazy();    // 返回該字段內容是否滯后加載


    AbstractField

    AbstractField為一抽象類,它實現了Fieldable中的部分方法。也定義了一系列變量用來表示該Field所包含的數據及對此數據的處理方式。

     1    protected String name = "body"// Field名,默認為body
     2    protected boolean storeTermVector = false;    // 是否保存字段的term vector
     3    protected boolean storeOffsetWithTermVector = false;    // term偏移信息
     4    protected boolean storePositionWithTermVector = false;    // term位置信息
     5    protected boolean omitNorms = false// 是否省略標準????
     6    protected boolean isStored = false// 是否存儲
     7    protected boolean isIndexed = true// 是否索引
     8    protected boolean isTokenized = true// 是否分詞
     9    protected boolean isBinary = false;    // 是否二進制保存
    10    protected boolean isCompressed = false// 是否壓縮存儲
    11    protected boolean lazy = false// 是否滯后加載
    12    protected float boost = 1.0f// boost因子
    13    // the one and only data object for all different kind of field values
    14    protected Object fieldsData = null// Field內容


    Field

    Field為具體子類,實現了接口Fieldable中的所有方法。另外,它還定義了3個內部類,Field.Store Field.IndexField.TermVector用來說明在索引是對該字段的處理方式。

    Field.Store:是否存儲此Field

    Field.Index:是否索引此Field

    Field.TermVector:此Field是否擁有及如何存儲term vectors



    FieldSelector
    類系

    1FieldSelector類系層次圖

    3.部分代碼及說明

    FieldSelectoResult接口

    FieldSelector接口只提供了一個accept(fieldName)方法,用來返回文檔的字段在文檔被讀取時的載入方式;而FieldSelectorResult則是字段載入方式的集合類:

     1public transient static final FieldSelectorResult LOAD = new FieldSelectorResult(
     2            0);    // 立即載入
     3public transient static final FieldSelectorResult LAZY_LOAD = new FieldSelectorResult(
     4            1);        // 滯后載入
     5public transient static final FieldSelectorResult NO_LOAD = new FieldSelectorResult(
     6            2);        // 不載入字段內容
     7public transient static final FieldSelectorResult LOAD_AND_BREAK = new FieldSelectorResult(
     8            3);        // 載入部分字段并終止載入
     9public transient static final FieldSelectorResult LOAD_FOR_MERGE = new FieldSelectorResult(
    10            4);        // 立即載入,但不解壓被壓縮過的內容
    11public transient static final FieldSelectorResult SIZE = new FieldSelectorResult(
    12            5);        // 只載入字段大小
    13public transient static final FieldSelectorResult SIZE_AND_BREAK = new FieldSelectorResult(
    14            6);        // 載入字段大小并立即終止載入
    15

     

    LoadFirstFieldSelector

    LoadFirstFieldSelector最簡單的一個FieldSelector實現類,該選擇器類說明字段(accept()方法中的參數指定的字段)內容被載入后,立即終止文檔的載入過程。

    1    public FieldSelectorResult accept(String fieldName) {
    2        return FieldSelectorResult.LOAD_AND_BREAK;
    3    }

     

    MapFieldSelector

    MapFieldSelector用來說明哪些字段內容被載入,哪些字段內容不被載入。它定義了一個Map類型的變量:fieldSelections,在此Map查的到的字段將被載入,反之將不被載入。

    1    public FieldSelectorResult accept(String field) {
    2        FieldSelectorResult selection = (FieldSelectorResult) fieldSelections
    3                .get(field);
    4        return selection != null ? selection : FieldSelectorResult.NO_LOAD;
    5    }


    SetBasedFieldSelector類

    SetBasedFieldSelector用來說明哪些字段內容將被立即載入,哪些字段將被滯后載入。

     1    private Set fieldsToLoad;    // 立即載入字段集合
     2    private Set lazyFieldsToLoad;    // 滯后載入字段集合
     3
     4    public FieldSelectorResult accept(String fieldName) {
     5        FieldSelectorResult result = FieldSelectorResult.NO_LOAD;
     6        if (fieldsToLoad.contains(fieldName) == true{
     7            result = FieldSelectorResult.LOAD;
     8        }

     9        if (lazyFieldsToLoad.contains(fieldName) == true{
    10            result = FieldSelectorResult.LAZY_LOAD;
    11        }

    12        return result;
    13    }

     

    Document

    文檔是索引和搜索的單位,它由一組字段構成。每個字段都有字段名跟字段內容。字段有可能跟文檔一起被保存下來,這樣在文檔被搜索到時就會同時返回該字段的內容。因此,文檔需要保存一個或多個字段來與其他文檔相區別。

    posted on 2008-12-02 12:01 Rolandz 閱讀(2346) 評論(3)  編輯  收藏

    評論

    # re: Lucene源碼分析筆記之[org.apache.lucene.document](四) 2009-03-30 14:06 koala++

    寫的不錯呀,為什么不再寫下去了呢?  回復  更多評論   

    # re: Lucene源碼分析筆記之[org.apache.lucene.document](四) 2009-10-21 20:10 ggggggggg

    寫的非常好,我不頂不行.....  回復  更多評論   

    # re: Lucene源碼分析筆記之[org.apache.lucene.document](四) 2009-11-11 15:53 afdsafds

    是不是延遲加載是不是只能查看不能設置呀?請問有辦法設置加載方式嗎?  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    留言簿(1)

    隨筆分類(12)

    隨筆檔案(19)

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲天堂中文字幕在线| 精品国产免费人成电影在线观看| 好爽…又高潮了毛片免费看| 亚洲国产成a人v在线| 97av免费视频| 亚洲国产成人资源在线软件| 久久99九九国产免费看小说| 亚洲另类视频在线观看| 18禁无遮挡无码网站免费| 99久久国产亚洲综合精品| 日韩免费高清一级毛片在线| 亚洲av日韩综合一区二区三区| 青草草在线视频永久免费| 美女被免费网站在线视频免费 | 日韩精品无码免费一区二区三区| 亚洲AV无码专区国产乱码4SE | 亚洲精品无码成人| 国产免费观看黄AV片| 高h视频在线免费观看| 久久久无码精品亚洲日韩软件| aa级毛片毛片免费观看久| 亚洲AV午夜成人片| 无码专区永久免费AV网站| 粉色视频免费入口| 国产亚洲真人做受在线观看| h视频在线免费看| 无码天堂va亚洲va在线va| 久久久久亚洲爆乳少妇无| 99视频精品全部免费观看| 色噜噜亚洲男人的天堂| 免费二级毛片免费完整视频| 国产免费一区二区视频| 亚洲黄页网在线观看| 亚洲精品国产精品乱码不卡| 一级毛片免费视频| 亚洲成a∨人片在无码2023| 亚洲色精品aⅴ一区区三区| 成人女人A级毛片免费软件 | 污视频网站在线观看免费| 久久亚洲国产成人亚| 在线观看免费污视频|