CuardachLink to this heading
Tasc coitianta d'fheidhmchláir gréasáin is ea roinnt sonraí sa bhunachar sonraí a chuardach le hionchur úsáideora. I gcás simplí, d'fhéadfadh sé seo a bheith ag scagadh liosta rudaí de réir catagóire. D'fhéadfadh go mbeadh gá le cás úsáide níos casta cuardach le meáchain, catagóiriú, aibhsiú, teangacha éagsúla, agus mar sin de. Míníonn an doiciméad seo cuid de na cásanna úsáide féideartha agus na huirlisí is féidir leat a úsáid.
Déanfaimid tagairt do na samhlacha céanna a úsáidtear in:doc: /topics/db/queries.
Úsáid CásannaLink to this heading
Ceisteanna téacsúla caighdeánLink to this heading
Text-based fields have a selection of matching operations. For example, you may wish to allow the lookup of an author like so:
>>> Author.objects.filter(name__contains="Terry")
[<Author: Terry Gilliam>, <Author: Terry Jones>]
Is réiteach an-leochaileach é seo mar éilíonn sé ar an úsáideoir fotheagán cruinn d'ainm an údair a fháil amach. D'fhéadfadh cur chuige níos fearr a bheith ina mheaitseáil cás-neamh-íogair (:lookup: icontains), ach níl sé seo ach beagán níos fearr.
Feidhmeanna comparáide níos airde bunachar sonraíLink to this heading
Má tá PostgreSQL á úsáid agat, soláthraíonn Django: doc: `rogha uirlisí sonracha bunachar sonraí' chun ligean duit roghanna fiosrúcháin níos casta a gh</ref/contrib/postgres/search> iaráil. Tá roghanna éagsúla uirlisí ag bunachair sonraí eile, b'fhéidir trí bhreiseáin nó feidhmeanna sainmhínithe Ní chuimsíonn Django aon tacaíocht dóibh ag an am seo. Úsáidfimid roinnt samplaí ó PostgreSQL chun an cineál feidhmiúlachta a d'fhéadfadh a bheith ag bunachair sonraí a thaispeáint.
Sa sampla thuas, chinneamar go mbeadh cuardach neamhíogair cás níos úsáideach. <unaccent>Agus tú ag déileáil le hainmneacha neamh-Bhéarla, is é feabhas breise le húsáid:lookup: `comparáid unacented `:
>>> Author.objects.filter(name__unaccent__icontains="Helen")
[<Author: Helen Mirren>, <Author: Helena Bonham Carter>, <Author: Hélène Joy>]
Taispeánann sé seo saincheist eile, áit a bhfuilimid ag meaitseáil i gcoinne litriú difriúil an ainm. Sa chás seo tá neamhshiméadracht againn áfach - piocfaidh cuardach ar Helen suas Helena nó Hélène, ach ní an cúil. Rogha eile ba ea comparáid a: lookup: trigram_similar a úsáid, a dhéanann comparáid idir seicheamh litreacha.
Mar shampla:
>>> Author.objects.filter(name__unaccent__lower__trigram_similar="Hélène")
[<Author: Helen Mirren>, <Author: Hélène Joy>]
Anois tá fadhb dhifriúil againn - ní thaispeánann ainm níos faide “Helena Bonham Carter” mar tá sé i bhfad níos faide. Measann cuardaigh Trigram gach teaglaim de thrí litir, agus déanann siad comparáid idir cé mhéad atá le feiceáil i dteaghráin cuardaigh agus foinse Maidir leis an ainm níos faide, tá níos mó teaglaim ann nach bhfuil le feiceáil sa sreang foinse, mar sin ní mheastar gur dlúthmheaitseáil é a thuilleadh.
Braitheann an rogha ceart feidhmeanna comparáide anseo ar do shraith sonraí, mar shampla an teanga/na teanga/na teangacha a úsáidtear agus an cineál téacs atá á chuardach. Tá na samplaí go léir a chonaic muid ar teaghráin ghearra inar dócha go gcuirfidh an t-úsáideoir rud éigin gar (trí shainmhínithe éagsúla) do na sonraí foinse.
Cuardach doiciméadarbhunLink to this heading
Stopann oibríochtaí caighdeánacha bunachar sonraí ina chur chuige úsáideach nuair a thosaíonn tú ag smaoineamh ar bh Cé gur féidir smaoineamh ar na samplaí thuas mar oibríochtaí ar shreang carachtair, féachann cuardach téacs iomlán ar na focail iarbhír. Ag brath ar an gcóras a úsáidtear, is dócha go n-úsáidfidh sé cuid de na smaointe seo a leanas:
Neamhaird a dhéanamh ar “focail stad” mar “a”, “an”, “agus”.
Focail a spreagadh, ionas go meastar go bhfuil “pánach” agus “pánaigh” cosúil leo.
Focail mheáchain bunaithe ar chritéir éagsúla amhail cé chomh minic a bhíonn siad le feiceáil sa téacs, nó tábhacht na réimsí, amhail an teideal nó an eochairfhocail, a bhfuil siad le feiceáil iontu.
Tá go leor roghanna eile ann maidir le bogearraí cuardaigh a úsáid, is iad Elastic agus Solr cuid de na cinn is suntasaí. Is réitigh chuardaigh iomlána bunaithe ar dhoiciméid iad seo Chun iad a úsáid le sonraí ó mhúnlaí Django, beidh ciseal ag teastáil uait a aistríonn do chuid sonraí go doiciméad téacsúil, lena n-áirítear cúltagairtí do idí bunachar sonraí. Nuair a chuireann cuardach ag baint úsáide as an inneall doiciméad áirithe ar ais, is féidir leat é a lorg suas sa bhunachar sonraí ansin. Tá éagsúlacht leabharlanna tríú páirtí ann atá deartha chun cabhrú leis an bpróiseas seo.
Tacaíocht PostgreSQLLink to this heading
Tá a chur i bhfeidhm cuardaigh téacs iomlán féin ionsuite ag PostgreSQL. Cé nach bhfuil sé chomh cumhachtach le roinnt innill chuardaigh eile, tá an buntáiste aige a bheith taobh istigh de do bhunachar sonraí agus mar sin is féidir é a chomhcheangal go héasca le ceisteanna gaolmhara eile mar chatagóiriú.
Soláthraíonn an modúl:MOD: django.contrib.postgres roinnt cúntóirí chun na ceisteanna seo a dhéanamh. Mar shampla, d'fhéadfadh ceist na hiontrálacha blag go léir a luann “cáis” a roghnú:
>>> Entry.objects.filter(body_text__search="cheese")
[<Entry: Cheese on Toast recipes>, <Entry: Pizza recipes>]
Is féidir leat scagadh freisin ar mheascán de réimsí agus ar mhúnlaí gaolmhara:
>>> Entry.objects.annotate(
... search=SearchVector("blog__tagline", "body_text"),
... ).filter(search="cheese")
[
<Entry: Cheese on Toast recipes>,
<Entry: Pizza Recipes>,
<Entry: Dairy farming in Argentina>,
]
Féach an doiciméad contrib.postgres:doc: /ref/contrib/postgres/search le haghaidh sonraí iomlána.