2011-01-11

Oracle Text – (2)Getting Started with Oracle Text(Query Application)

這個章節是在解說很簡單的步驟,但是我卡在不知道如何建立CTXAPP Role,
後來老大找到這篇文章
Installing Oracle Text on Oracle 10gR2...

使用底下的catctx.sql(在oracle資料夾裡頭要找一下)
image
catctx.sql <password_for_CTXSYS> <tablespace_for_CTXSYS> <temp_tablespace_for_CTXSYS> <lock_or_nolock>

然後這篇文章中提到在建立context index 會產生一個錯誤,

ERROR atline 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATEroutine
ORA-20000: Oracle Text error:
DRG-10700: preference does notexist: CTXSYS.DEFAULT_LEXER
ORA-06512: at "CTXSYS.DRUE", line 126
ORA-06512:at "CTXSYS.TEXTINDEXMETHODS", line 54
ORA-06512: at line 1

10700,0, "preference does not exist: %(1)s"
// *Cause: the preference name specified does not exists
// *Action: retry with the correct preference name
// *Mnemonic: PF_PREF_NOTXIST
//
解決的方式是使用ctxsys這個user,去執行drdefxx.sql這個script,就可以。


-----這是分隔線,以上是建立CTXAPP Role的方式------------------------
因為範例中重要的是在建立Index上,所以我直接貼上範例所寫的SQL Statement
CREATE INDEX idx_docs ON docs(text) INDEXTYPE IS
CTXSYS.CONTEXT PARAMETERS('FILTER CTXSYS.NULL_FILTER SECTION GROUP CTXSYS.HTML_SECTION_GROUP');
所以查詢後的結果如下
SELECT SCORE(1),ID,TEXT FROM DOCS WHERE CONTAINS(TEXT,'France',1)>0;
image
補充: Contains clause
定義->
CONTAINS(
     [schema.]column,
      text_query    VARCHAR2
     [,label       NUMBER])RETURN NUMBER;
----這是分隔線,以上是查詢的結果----------------------------
若今天若新增幾筆資料,但是這些資料卻未建立Index則會發生找不到資料的問題,
也就是Index沒有同步,如下圖所示
image

所以這時候解決的方法可以使用CTX_DLL.SYNC_INDEX的方式
image

2011-01-10

Oracle Text –(1)Understanding Oracle Text Application Development

因為在工作上有些需要,所以現在正在K Oracle這本書,
有關於Full Text Search,邊看邊寫下這篇記錄,希望對往後認識Oracle有所幫助。

(1)Document Collection Applications
這部分是講說可以查詢類似像是HTML、PDF、Word的檔案,這些檔案是被放在
Document的Table中,在Searching的時候必須要先建立Index(CONTEXT Index)。
書中舉了一個WWW的例子,就是說使用URL當作Index然後查詢Web side資料內容。

(2)Catalog Information Applications
這部分是講說像是線上書店或是拍賣網站的目錄查詢,在這裡建立的Index類型為
CTXCAT index。
SQL語法是使用CATSEARCH Query

(3)Document Classification Applications
這部分看不大懂,好像是說由不同的檔案資料來源轉換成”Document Stream”,
再經由Document Classification Application利用SQL的MATCHES語法

其實這個章節主要是在解說一些概念,匆匆先帶過可以往後再回過頭來付息概念。

2011-01-04

XmlSerializer 隨手筆記

今天在撰寫程式的時候,希望有些設定能放進設定檔中,
預期希望是[能將某些設定資訊寫進到一個XML Document裡]。

原本是希望藉由XPath來查詢就好,但是這次想試用看看XmlSerializer的方式,
因為專案中會設計一個Class去承接這些資訊,若是使用物件方式也方便我程式上的使用
(先不管是否有設計缺點,因為功能只是記下很單純的設定)

先設定要被Serialize的物件資訊(相關XmlAttribute的使用方式,可能要自己查Online 的MSDN)
image

程式碼如下:
image
使用XmlSerializer來序列化物件,另外程式碼中有XmlSerializerNamespaces這個物件,
這是因為希望在XML檔案中不要有Namespace出現(使用方式是參考這篇
XmlSerializer : Encoding & Xml Namespaces(流星的隨筆記事)),

最後的結果如下圖所示:
image
先簡單記錄下來,因為沒甚麼時間撰寫。

參考資料:
1.XmlSerializer : Encoding & Xml Namespaces
2.用XmlSerializer串行化(序列化)ArrayList数组对象与反序列化