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