13. Cơ chế khóa trên Repository
14.1.3.2 Mệnh đề DEPTH
Mệnh đềcon DEPTHdùng đểgiớihạn độsâu truyvấn trongcâyphân cấptính từItemđượcxácđịnhbởipathpatterntrongmệnhđềLOCATION.
number::=/*Sốnguyênkiểuinteger*/
BùiVĩnhPhú 108 ĐặngĐình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
Nếu giátrịcủanumberlà 0thìcónghĩa làkhôngtruyvấn gìcả.Cònnếugiátrị củanumber<0thìđiềuđócónghĩalàđộsâutruyvấnkhôngbịgiớihạn.
Vídụ:
SELECT*FROM*LOCATIONDEPTH2 /press/releases//myapp:picture
Sẽ trả vềmọi Item cótên myapp:picture trong nhánhcây con của/press/releases và đi sâuxuốngdưới2cấp.
14.1.4 Mệnh đềWHERE
Mệnh đề WHERE cho phép giới hạn chỉ trả về các Node sao cho miền giá trị của các thuộc tính trong các Node trả về này thoả điều kiện ràng buộc trong mệnh đề WHERE.
whereclause::=WHEREexpression
expression::=propertyopvalue| propertyLIKEpattern|expression ANDexpression| expressionORexpression| NOTexpression
op::==|>|<|>=|<=
property:=/*TêncủaProperty*/
value:=/*MộtgiátrịcủaProperty,giátrịchuẩncókiểuString*/ pattern::="likepattern"|likepattern
likefragment::=likechar|likecharwildcard wildcard::=*|?|%|_
char::=/*Bấtkìkýtựnàotrongchuỗiđạidiệnchomộtvalue*/
BùiVĩnhPhú 109 ĐặngĐình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
Vídụ:
Câutruyvấnsau:
SELECTmyapp:imageFROM*WHEREheight<100AND keywordLIKE"*apple*"
Sẽ trả về tất cả các Node tên là myapp:image sao cho thuộc tính height của nó có giátrị<100vàthuộctínhkeywordcủanócóchứachuỗi“apple”.
14.1.5 Mệnh đềSEARCH
Mệnh đề SEARCH cho phép đưa vào câu truy vấn ngôn ngữ tìm kiếm đầy đủ theotừ.CúphápcuảmệnhđềSEARCHđượcmôtảdưóiđây:
textsearchclause::=TEXTSEARCHsearchexp searchexp::=simplesearchexp|
customsearchexp| "simplesearchexp"| "customsearchexp"
simplesearchexp::=[-]term{[OR][-]term} term::=word|'word{word}'
word::=/*Mộtchuỗikhôngcókhoảngtrắng)*/
customsearchexp::=/*Mộtphầnmở rộngđượcđịnhnghĩabởicác chuẩnkhác*/
simple-search engine. Đây là kiểu tìm kiếm theo chuỗi thường sử dụng trong các SearchEnginenhưGooglehayYahoonhưđượcđịnhnghĩatrongsimplesearchexpnhư trên.Cúphápcủa simplesearchexpnàycóthểđượcmôtảnhưsau:
BùiVĩnhPhú 110 ĐặngĐình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
• Khoảng trắng giữa các từ khoá tìm kiếm (Term) được hiểu như toán tử AND.
• Các từ khoá bị loại trừ trong kết quả tìm kiếm được thêm vào dấu “-” phíatrướctừkhoáđó.Nghĩalàkếtquảtìmkiếmkhôngđượcchứanhững từkhoábịloạitrừnày.
• Mỗitừkhoá tìmkiếmcóthể chỉbaogồmmộttừ haylàmộtnhómcác từ vàđượcgiớihạnbởidấunháyđơn“'”.
• Toàn bộ simplesearchexp có thểđược giớihạn bở dấunháy đôi “ “ ” để cóthểchứakýtựtrắng(khoảngtrắng).
• Trongsimplesearchexp, nếumuốnsửdụngkýhiệu“'”,““”,“\”hay“-” theo ýnghĩathông thườngthì phảisửdụng thêmký hiệu“\”theo dạng“ \'”,“\“”,“\\”hay“\-”.
• PhạmvicủamệnhđềSEARCHlàgiaocủa2tậphợp:
• Tậpgiátrịcủa nhữngthuộctính concủacácNodeđượcxácđịnhbởicác mệnh đề khác trongcâu truy vấn JCRQL(chẳng hạn mệnh đề SELECT, FROM, LOCATION,WHERE...).
14.1.6 Mệnh đềORDERBY
orderclause ::= ORDER BY propname {, propname}
propname::=/*TêncủamộtProperty*/
Mệnh đềORDERBYdùngđểsắp xếpkếtquảcâutruy vấntheogiátrịcủamột haynhiềuthuộctính.
Bùi Vĩnh Phú 111 Đặng Đình Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
15. Một số ví dụ về việc cài đặt JCR