區段支援可讓您在結構化文件編製特定區段的索引和搜尋特定區段,例如,標題、作者或說明區段。 文件可以使用 XML 或 HTML 格式或是具有類似 HTML 標籤的純文字檔文件。 請在某文件模型定義標註標籤和它們的對應區段名稱。 文件模型定義文件中的哪些區段是有編製索引的區段,因此可以搜尋這些區段。 區段名稱是用於查詢該區段的敘述性名稱。
若要使用區段支援,那麼在啟用含有文件的文字直欄時, 您必須指定 INDEXPROPERTY SECTIONS_ENABLED。
文件模型檔列示伺服器案例的全部定義的文件模型。 建立一個伺服器案例之後,會在伺服器案例次目錄自動建立範例文件模型檔 DESMODEL.INI。 此檔案使用 ASCII 字碼頁。
文件模型資訊會複製到索引目錄。 若在建立索引之後變更伺服器案例的文件模型檔,並不會影響已建立的索引的區段支援。
搜尋具有區段支援的索引 (例如,在區段「作者」中搜尋 McDaniel) 示範如下。 模型名稱一定加在區段 (以本案例而言為「作者」) 的前面。
db2 "select count (*) from db2tx.htmltable where db2tx.contains(myhandle,'MODEL myhtmlmodel SECTION (author) "McDaniel"') = 1
區段可以有不同類型。純文字區段沒有類型。 具有宣告類型的區段稱為屬性區段。支援的屬性類型:
您可使用值範圍搜尋含有屬性區段的文件。 此區段必須有適當區段類型。在下例中,區段 ABC 必須有類型 TIME 才能支援查詢:
retrieve all documents containing values between 20:00:00 and 22:00:00 in the section ABC
一個區段可以有一個以上的屬性值。以空格或換行分隔值。您無法巢狀化屬性區段。
您可以在文件模型中將日期 (例如建立日期或公佈日期) 併入支援的區段列示。 支援下列日期格式:
格式名稱 | 格式 | 範例 |
---|---|---|
ISO | YYYY-MM-DD |
1986-12-25 100-12-25 10123-2-17 |
DD-MM-YYYY |
01-10-1999 5-8-1990 | |
IBM USA Standard (USA) | MM/DD/YYYY |
08/18/1999 5/13/1977 |
YYYY/MM/DD |
1999/08/18 | |
IBM European Standard (EUR) | DD.MM.YYYY |
20.10.1999 1.5.1980 |
對具有區段支援的索引搜尋在某一個日期公佈的全部文件,示範如下:
dessrch -s SERVER -x TESTIX -section sample/PublishingDate -term 1999-09-09
支援下列時間格式︰
格式名稱 | 格式 | 範例 |
---|---|---|
ISO |
hh:mm:ss hh:mm hh.mm.ss hh.mm hh hhmm hhmmss |
19:00:23 19:00 19.00.23 19.00 19 1900 190013 |
您可省略小時的前導零。下列範圍以外的值是無效值︰
小時 | 分鐘 | 秒 |
---|---|---|
0-23 | 0-59 | 0-59 |
支援下列格式︰
使用空格或換行分隔浮點值。
下列是浮點值的正確格式和錯誤格式範例:
正確的格式 | 不正確的格式 |
---|---|
1000 1 1.0e3 1.0E3 1E3 .1E4 0.1E4 |
1 000 1,000 e3 |
支援範圍 -2147483648 到 2147483647 中的整數。 使用空格分隔整數。這表示類型 INTEGER 區段中的字串 "42 234" 會解析成整數值 "42" 和 "234" 而不是 "42234"。
下例是整數值的正確格式和錯誤格式範例︰
正確的格式 | 不正確的格式 |
---|---|
1000 |
1.000 1,000 1 000 |
1000000 |
100.000 100,00 100 000 |
備註 |
---|
不支援語言專用分隔字元和貨幣符號格式。 |
就純文字檔而言,使用類似 HTML 標籤 (例如 <title> 和 <subject>) 標註區段。 具有標註區段的文件可能如下︰
<title>IBM Dictionary of Computing <author>McDaniel, George <subject> Computers, Reference, ....
純文字檔或 HTML 文件的文件模型檔可能如下。 模型名稱和區段名稱只能包含 A-Z、a-z 和 0-9。模型名稱一定有區分大小寫。 區段名稱可以有區分大小寫或不區分大小寫;建立模型時請指定設定。
;list of document models ;model always starts with 'modelname' and the name of the model [MODELS] modelname=sample modelname=sample2 modelname=sample3 ; a 'sample' document model definition ; left - section name identifier ; right - section name tag [sample] Title = title Author = author Subject = subject Abstract = abstract Content = content PublishingDate=date [sample2] Title = title Author = author Subject = subject [sample3] Title = title Author = author Abstract = abstract Docnum = docnum
若一個文件有含有一個標註區段,該區段未定義於文件模型,那麼該區段內容會併入先前定義的區段以便編製索引和搜尋。 例如,含有下列標註區段的文件︰
<title>IBM Dictionary of Computing <subject> Computers, Reference, .... <author>McDaniel, George <abstract> Contains up-to-the-minute coverage of information processing systems, communication products and facilities, personal computers, and office systems, as well as the full range of IBM hardware and software products.
定義文件模型 book 如下︰
[MODELS] modelname=book [book] Title = title Author = author Abstract = abstract
<subject> 區段沒有內含在 book 文件模型。 編製文件的索引時,會使用標題區段內容編製主旨區段內容的索引。 在標題區段內也可搜尋它們。
若在建立索引時指定模型列示,那麼預設模型是列示中的第一個模型。 您可使用 desmodix 指令變更預設模型。
就區段啟用的索引而言,XML 文件必須是正確建構的文件而且含有一個 root 元素。 root 元素名稱必須與其中一個定義的模型名稱相同而且大小寫必須相同。 文件模型檔中的模型說明必須是定義在文件的 DTD (文件類型定義) 檔的文件模型的子集。
模型說明的開頭必須是 root 元素。就想要作為區段的 XML 元素,您必須將它的完整階層併入模型說明。 若區段是類型日期區段,那麼本區段必須是文件模型樹狀結構中的葉。 不支援屬性區段巢狀。
XML 文件的模型說明可能如下︰
; 文件模型列示 [MODELS] modelname = LETTER ; sample for XML model definition ; left-hand side = section name identifier encoding whole path ; right-hand side = section name tags specifying tag for each ; element of the path through the tree down to ; the specified node. Tag delimiter is /. [LETTER] LETTER = LETTER LETTER/date = LETTER/DATE LETTER/address = LETTER/ADDRESS LETTER/address/City = LETTER/ADDRESS/CITY LETTER/Content = LETTER/CONTENT LETTER/Content/Greetings = LETTER/CONTENT/GREETINGS
XML 文件可能如下。它也說明如何編製那些沒有定義於模型的區段的索引。
<?xml version="1.0"?> <!DOCTYPE LETTER SYSTEM "letter.dtd"> <LETTER> <HEADER>This tag has been skipped in the definition, to this text will be added to the section named LETTER </HEADER> <DATE> 01.01.2000 03.02.2000 </DATE> <ADDRESS> Text will be added to the section named LETTER/address. <CITY> Text will be added to section named LETTER/address/City. </CITY> </ADDRESS> <CONTENT> Text will be added to the section named LETTER/Content. <NOSECTION>Text will be added to the section named LETTER/Content because NOSECTION is not defined. </NOSECTION> <GREETINGS> Text will be added to section named LETTER/Content/Greetings. </GREETINGS> </CONTENT> </LETTER>