apache solr

Upload: levanhunf

Post on 19-Oct-2015

247 views

Category:

Documents


2 download

TRANSCRIPT

APACHE SOLR

APACHE SOLR

Wednesday, 22 May 2013Version: 1.0

Prepared byLongNH

Mc lc

1.GII THIU CHUNG52.Tng quan Apache Solr62.1.Lm quen vi Apache Solr62.2.Ci t Apache Solr6a.Yu cu chung6b.Window6c.Linux72.3.Quick start7a.Add - Update8b.Delete9c.Select102.4.Add - Update12a.Add - Update theo collection12b.JsonUpdate12c.XMLUpdate132.5.Delete142.6.Select - Query Params14a.Select theo collection14b.q15c.sort15d.start15e.rows16f.fq16g.fl162.7.To v cu hnh collection162.8.Allow ip address access to Solr Server183.Solarium193.1.Solarium l g193.2.Ci t Solarium cho fuelphp193.3.S dng Solarium21a.Check and Ping21b.Basic select22c.Basic update22d.Select Params23e.Filter Query24f.Add Multi25g.Delete25h.More Example26Ph lc27Cc ti liu tham kho27

GII THIU CHUNGTrong cc h thng c lng ngi dng ln th s tn ti ca h thng tm kim l iu rt quan trng v c th ni l tiu chun bt buc phi c. Tuy nhin vic cho php ngi dng tm kim trc tip trong database s gy ra lng truy xut vo database tng ln, c th lm chm hoc gy qu ti database. V th vic hn ch truy xut vo trong database l cn thit. Vy chng ta t ra mt bi ton l hn ch truy xut vo trong database nhng vn c th tm kim c d liu ngi dng mong mun. Apache Solr l gii php tm kim cho cc h thng nh vy. Apache Solr ngoi vic cho php trnh truy cp vo database m vn c th tm kim thng tin ngi dng mong mun th cn cung cp rt nhiu tnh nng nh fulltext search, highlighting, faceted search, near real-time indexing, dynamic clustering, database integration, rich document handling, v geospatial search.Ti liu ny s hng dn cc bn t cch ci t h thng Solr, cu hnh, ci t Solr cloud v cch s dng PHP client Solarium ca Solr vi Fuelphp. Ti liu chc chn s c nhiu thiu st mong cc bn ng gp kin v hm mail [email protected] ti liu c hon thin hn.

Tng quan Apache Solr Lm quen vi Apache Solr Sau khi ci t mt h thng tm kim, s khng c d liu no nm trong h thng tm kim, v th chng ta s phi: nh hnh d liu c index trong h thng thng qua vic nh ngha file cu hnh schema.xml a d liu vo trong h thng tm kim thng qua cc phng thc do Solr cung cp S dng cc phng thc do h thng Solr cung cp ly ra d liu V th, s dng nn tng tm kim Solr chng ta cn tm hiu cc phn: nh hnh d liu lu trong h thng Index d liu (add/update) Select d liu Delete d liuCi t Apache SolrYu cu chung Java 1.6 tr ln c th ly ti Oracle, Open JDK, hoc IBM. B ci Solr. C th ly ti http://lucene.apache.org/solr/Window Gii nn b ci Solr vo Path/To/Solr. Chuyn vo folder example ca Solr bng command line: cd Path/To/Solr/example Khi ng Solr: java -jar start.jar

Linux Gii nn b ci Solr vo Path/To/Solr. Khi ng Solr. Sau khi khi ng Solr vo ng dn http://localhost:8983/solr/ s dng Solr trn giao din trnh duyt Quick start Yu cu: Sau khi ci t Solr, h thng s c sn mt v d trong th mc example. Ngi dng s khi ng mt Solr server bng cch chy lnh java - jar start.jar Trong th mc path/to/solr/example/solr s c mt th mc collection1 l v d v mt core collection ca solr. vo th mc path/to/solr/example/solr/collection1 m file schema.xml bn s thy cu trc d liu c lu trong collection1 c dng:

Ngi dng ch c th thm thng tin c c nh ngha trong file schema.xml nu thm nhng trng khng c trong file nh ngha h thng s khng cho a d liu vo v bo trng khng tn tiAdd - Update Yu cu: Ci t curl Chy lnh trn command line:

By gi kim tra xem d liu c insert vo hay cha cc bn vo ng dn http://localhost:8983/solr/#/collection1/query trn trnh duyt click vo nt Execute Query d liu s hin th ra:

Vy l chng ta thm d liu vo trong Solr thnh cng

Delete i khi chng ta cn xa d liu c tha hoc khng dng n na Chy lnh trn command line:

Sau vo giao din qun tr kim tra li

Bn ghi b xa mt

Select Add thm mt s d liu mi

Ly ra cun sch c id l 112332: http://localhost:8983/solr/collection1/select?q=id:112332&wt=xml

Ly ra cc cun sch c tn cha t Cook: http://localhost:8983/solr/collection1/select?q=name:*Cook*&wt=xml

Add - UpdateAdd - Update theo collection Mun add v update vo mt collection no th trong ng dn ta thm tn ca collection vo. Thm vo collection1:

Thm vo collection friend:

JsonUpdate add d liu di dng json:

add d liu bng file json:

add d liu bng file json vo collection friend:

sa d liu:

XMLUpdate

Thm d liu vo collection1 bng xml:

Update bn ghi bng xml vo collection1

Delete Xa bn ghi theo id

Xa theo query

Xa tt c cc bn ghi

Select - Query ParamsSelect theo collection Tng t nh update theo collection, khi select ta cng thm vo ng dn tn ca collection VD: Thm tn collection1 vo http://localhost:8983/solr/collection1/select?q=name:*Cook*&wt=xml

q Tham s query, sau tham s ny l iu kin tm kim : tm kim theo mt t kha no bt k trng d liu no: http://localhost:8983/solr/collection1/select?q=solr book tm theo mt trng no vi d kin chnh xc: http://localhost:8983/solr/collection1/select?q=name:book tm theo mt trng no vi d kin bt u vi 1 t kha: http://localhost:8983/solr/collection1/select?q=name:book* tm theo mt trng no vi d kin kt thc vi mt t kha http://localhost:8983/solr/collection1/select?q=name:*book tm theo mt trng vi d kin gm nhiu t kha http://localhost:8983/solr/collection1/select?q=name:*book* AND name:*java*

sort Tham s dng sp xp kt qu tm kim c http://192.168.1.159:8983/solr/friend/select?q=name:sgtest*&wt=xml&sort=name asc Sp xp theo nhiu trng khc nhau http://192.168.1.159:8983/solr/friend/select?q=name:sgtest*&wt=xml&sort=name asc, ngame_played desc

start Dng phn trang. S bt u ly d liu t bn ghi s bao nhiu. http://192.168.1.159:8983/solr/friend/select?q=name:sgtest*&wt=xml&sort=name asc, ngame_played desc&start=5 => b qua 5 bn ghi u

rows S bn ghi hin trong mt trang, cng dng phn trang. http://192.168.1.159:8983/solr/friend/select?q=name:sgtest*&wt=xml&sort=name asc, ngame_played desc&start=10&rows=10 => tng ng vi limit 10, offset 10fq Dng lc theo iu kin http://192.168.1.159:8983/solr/friend/select?q=name:sgtest*&wt=xml&sort=name asc&fq=ngame_played:[1 10] => lc trng ngame_played c ln t 1 n 10

fl Ly bn ghi vi cc trng c quy nh http://192.168.1.159:8983/solr/friend/select?q=name:sgtest*&wt=xml&sort=name asc&fq=ngame_played:[1 10]&fl=id,name,avatar,status,friend_mutual => ch hin th cc trng id, name, avatar, status v friend_mutualTo v cu hnh collection Sau khi ci t xong Solr, chuyn ti th mc:

To collection mi user:

Cu hnh h thng nhn collection user:

Kh ng li solr bn s thy trong admin hin thm collection user (chuyn v th mc solr/example chy lnh java -jar start.jar)

Tuy nhin hin ti collection user s c cu trc lu tr ging vi collection1 do ta clone collection user t collection1. thay i cu trc lu tr ca collection user cho ph hp vi nhu cu ta cn phi cu hnh li file solr/example/solr/user/conf/schema.xml Cc phn cu hnh: Kiu d liu: Trong phn ta c th cu hnh mt danh sch cc kiu d liu . Cc trng lu tr trong collection: Trong phn ngi dng c th nh ngha cc trng s c lu tr trong collection cho mt bn ghi. S khng lu c bn ghi nu bn ghi c trng khng c nh ngha y hoc khng c nh ngha trong dynamic fields. Mt s thuc tnh c th thng gp trong mt trng: default: Gi tr mc nh nu khi to bn ghi trng khng c in gi tr index=true|false: nu c index s c quyn c search, sort facet store=true|false: Dng khi cn highlight hoc khi cn ly d liu t trng ra khi search Trng bt buc nu mun s dng updateLog nh ngha mt dynamic fields trong collection thm vo trong file schema.xml .Dynamic file dng nh ngha nhng nhm trng m c thuc tnh chung khng cn phi mt cng nh ngha nhiu dng. nh ngha mt trng unique trong s cc trng nh ngha, ta thm vo file schema.xml: id tm hiu su hn nghin cu qua ti liu : http://wiki.apache.org/solr/SchemaXml

Allow ip address access to Solr Server Cc phn cu hnh: M file example/etc/jetty.xml Trong phn thm mt item mi:

Vi mi a ch ip cho php truy cp vo ta thm mt cell:

Khi ng li server SolrSolr Cloud

SolariumSolarium l g Solarium l b client ca Solr dnh cho PHP. Solarium khng ch l cng c giao tip thng thng m cn c gng tip cn chnh xc m hnh khi nim ca SolrCi t Solarium cho fuelphp B ci t solarium c th ly t: https://github.com/basdenooijer/solarium Ngoi ra solarium cn s dng th vin EventPatcher ca symfony: https://github.com/symfony/EventDispatcher Bn solarium c tch hp sn symfony event dispatcher: https://github.com/tieulonglanh/solarium t ton b th mc Solarium ly c v vo trong th mc fuel/app/vendor Trong th mc fuel/packages to thm mt package mi l sgame. Trong th mc fuel/packages/sgame/classes to 1 file solariumfactory.php vi ni dung:

Trong file bootstrap thm ni dung:

Khi cn dng u th gi Solarium:

Khi to:Cu hnh:

S dng:

S dng SolariumCheck and Ping Code demo:

Basic select Code demo:

Basic update Code demo:

Select Params Code demo:

Filter Query Code demo:

Add Multi Code demo:

Delete Delete by query:

Delete by id:

More Example Cn rt nhiu v d khc na xem ti https://github.com/tieulonglanh/solarium/tree/master/examples

Ph lcCc ti liu tham kho[1] http://wiki.apache.org/solr/[2] http://www.solarium-project.org/[3] Stackoverflow http://stackoverflow.com [4] Cc ngun khc trn internet

5SGame Internal