Ngôn ng truy vn JCRQL

Một phần của tài liệu xay dung cms module cho he thong intranet cua cong ty tma-lu (Trang 115 - 121)

14. Tìm k im ni dung trên Repository

14.1 Ngôn ng truy vn JCRQL

Câu truy v n s d ng ngôn ng JCRQL ph i theo đúng đnh d ng sau: (các t khoá nh SELECT và FROM ph i vi t hoa)

query ::= selectclause fromclause [locationclause] [whereclause] [textsearchclause] [orderclause]

14.1.1 M nh đ SELECT

M nh đ SELECT dùng đ đ a ra danh sách tên các Node c n truy v n, ho c n u s d ng ký hi u “*” thì m i Node đ u đ c truy v n.

selectclause ::= SELECT (* | nodenamelist) nodenamelist ::= nodename {, nodename} nodename ::= /* Tên c a m t Node */

14.1.2 M nh đ FROM

M nh đ FROM dùng đ xác đnh ch các ki u Node nào đ c truy v n. N u mu n truy v n m i ki u c a Node thì s d ng ký hiêu “*”.

fromclause ::= FROM (* | nodetypelist) nodetypelist ::= nodetype {, nodetype} nodetype ::= /* Tên c a ki u Node*/

14.1.3 M nh đ LOCATION

M nh đ u LOCATION dùng đ gi i h n l i ch truy v n trên m t ph n c a cây con trong cây phân c p b ng cách s d ng pattern đ ch đ ng d n trên Reporitory.

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

locationclause ::= LOCATION [depthclause]

[followingclause] pathpattern

pathpattern ::= plainpath[/] |

plainpath[//[plainpath[/]]] plainpath ::= itempattern{/pattern}

itempattern ::= * | [*]fragment{fragment} fragment ::= char | char*

char ::= /* B t k ký t nào đúng trong m t tên c a Item */ hi u rõ h n, ta xét ví d sau v pathpattern :

Pattern Selection

/press/release Ch Item /press/release

/press/release/* M i Item con c a /press/release

/press/release/*/picture M it Item có tên picture là con c a các Item con c a /press/release

/press/release// Item /press/release và m i Item trong cây phân c p b t đ u t /press/release

/press/release//* M it Item trong cây phân c p b t đ u t /press/release, không bao g m Item /press/release

/press/release//picture M i Item có tên picture có trong cây phân c p b t đ u t /press/release

/press/release/*//picture M i Item có tên picture có trong cây phân c p b t đ u t các Item con c a

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

14.1.3.1 M nh đ FOLLOWING

followingclause ::= FOLLOWING [CHILDREN] softlinkprops softlinkprops ::= itempattern {, itempattern}

M nh đ con FOLLOWING dùng đ thay đ i ph m vi truy v n đ c xác đnh b i pathpattern trong m nh đ LOCATION. Khi khơng có m nh đ con FOLLOWING thì s d ng phép toán “//” trong pathpattern dùng đ truy v n đ m i Item con bên d ói trong cây phân c p. Cịn khi s d ng FOLLOWING thì khi s d ng phép tốn “//”, trong q trình truy v n, khi g p thu c tính có ki u PATH thì quá trình tìm ki m s đ c chuy n h ng sang Item mà PATH đó ch t i, sau đó ti p t c truy v n b t đ u t Item đó theo c ch trên.

Ví d :

SELECT myapp:picture FROM * LOCATION FOLLOWING myapp:picturelink /press/releases//

Tr v các Item có tên là myapp:picture trên tồn b Reporitory sao cho các Item này đ c tr t i b i các Property ki u PATH có tên myapp:picturelink phía d i cây phân c p b t đ u t /press/releases.

14.1.3.2 M nh đ DEPTH

M nh đ con DEPTH dùng đ gi i h n đ sâu truy v n trong cây phân c p tính t Item đ c xác đnh b i pathpattern trong m nh đ LOCATION.

depthclause ::= DEPTH number

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

N u giá tr c a number là 0 thì có ngh a là khơng truy v n gì c . Cịn n u giá tr c a number < 0 thì đi u đó có ngh a là đ sâu truy v n khơng b gi i h n.

Ví d :

SELECT * FROM * LOCATION DEPTH 2 /press/releases//myapp:picture

S tr v m i Item có tên myapp:picture trong nhánh cây con c a /press/releases và đi sâu xu ng d i 2 c 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 ::= WHERE expression

expression ::= property op value | property LIKE pattern | expression AND expression | expression OR expression | NOT expression

op ::= = | > | < | >= | <=

property := /* Tên c a Property */

value := /* M t giá tr c a Property, giá tr chu n có ki u String */ pattern ::= "likepattern" | likepattern

likepattern ::= (wildcard | [wildcard]likefragment{likefragment}) likefragment ::= likechar | likechar wildcard

wildcard ::= * | ? | % | _

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

Ví d :

Câu truy v n sau :

SELECT myapp:image FROM * WHERE height < 100 AND keyword LIKE "*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 <100 và thu c tính keyword c a nó có ch a chu 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 đ theo t . Cú pháp cu m nh đ SEARCH đ c mơ t d ói đây:

textsearchclause ::= TEXTSEARCH searchexp searchexp ::= simplesearchexp |

customsearchexp |

"simplesearchexp" | "customsearchexp" simplesearchexp ::= [-]term {[OR][-]term} term ::= word | 'word {word}'

word ::= /* M t chu i khơng có kho ng tr ng)*/

customsearchexp ::= /* M t ph n m r ng đ c đnh ngh a b i các chu n khác */

M i ng d ng đ c xây d ng theo chu n JSR-170 đ u ph i h tr ít nh t simple-search engine. ây là ki u tìm ki m theo chu i th ng s d ng trong các Search Engine nh Google hay Yahoo nh đ c đnh ngh a trong simplesearchexp nh trên. Cú pháp c a simplesearchexp này có th đ c mơ t nh sau:

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

• Kho ng tr ng gi a các t khố tìm ki m (Term) đ c hi u nh tố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ía tr c t khố đó. Ngh a là k t qu tìm ki m khơng đ c ch a nh ng t khố b lo i tr này.

• M i t khố tìm ki m có th ch bao g m m t t hay là m t nhóm các t và đ c gi i h n b i d u nháy đ n “ ' ”.

• Tồn b simplesearchexp có th đ c gi i h n b d u nháy đơi “ “ ” đ có th ch a ký t tr ng (kho ng tr ng).

• Trong simplesearchexp, n u mu n s d ng ký hi u “ ' ”, “ “ ”, “\” hay “-” theo ý ngh a thơng th ng thì ph i s d ng thêm ký hi u “\” theo d ng “ \' ”, “ \“ ”, “\\” hay “\-”.

• Ph m vi c a m nh đ SEARCH là giao c a 2 t p h p:

• T p giá tr c a nh ng thu c tính con c a các Node đ c xác đnh b i các m nh đ khác trong câu truy v n JCRQL (ch ng h n m nh đ SELECT, FROM, LOCATION, WHERE ...).

14.1.6 M nh đ ORDER BY

orderclause ::= ORDER BY propname {, propname} propname ::= /* Tên c a m t Property */

M nh đ ORDER BY dùng đ s p x p k t qu câu truy v n theo giá tr c a m t hay nhi u thu c tính.

Phát tri n CMS module cho h th ng Intranet cu Cơng ty TMA

15. M t s ví d v vi c cài đ t JCR

Một phần của tài liệu xay dung cms module cho he thong intranet cua cong ty tma-lu (Trang 115 - 121)

Tải bản đầy đủ (PDF)

(167 trang)