TSearch: Razlika med redakcijama

Iz SDMS
Jump to navigationJump to search
m (Iskanje)
m (Iskanje)
Vrstica 58: Vrstica 58:
 
Method|TSearch.Execute
 
Method|TSearch.Execute
 
Query|String|Ključne besede, ki jih iščemo. V seznamu zadetkov bodo le tisti zapisi, ki vsebujejo vse podane besede.
 
Query|String|Ključne besede, ki jih iščemo. V seznamu zadetkov bodo le tisti zapisi, ki vsebujejo vse podane besede.
Template|String|Ime predloge, ki naj se uporabi za oblikovanje zadetkov,
+
Template|String|Obvezno ime predloge, ki naj se uporabi za oblikovanje zadetkov,
 
Category|String|Opcijsko ime kategorije, na katero želimo omejiti iskanje,
 
Category|String|Opcijsko ime kategorije, na katero želimo omejiti iskanje,
 
Hits|Long|Največje število zadetkov po kategoriji. Če je ta parameter 0, se izpišejo vsi zadetki, kar pa '''ni priporočljivo''', ker jih je lahko '''zelo veliko'''.
 
Hits|Long|Največje število zadetkov po kategoriji. Če je ta parameter 0, se izpišejo vsi zadetki, kar pa '''ni priporočljivo''', ker jih je lahko '''zelo veliko'''.

Redakcija: 15:11, 27. marec 2010

Razred Search je namenjen "Full Text Search" iskanju po bazi, podobno kot deluje ikanje na spletnih iskalnikih (Google,...).

Določanje nastavitev

V kolikor nameravate uporabljati "Full Text Search", je potrebno najprej sistemu povedati, po katerih plasteh in poljih naj se iskanje izvaja ter v kakšni obliki naj se prikazujejo zadetki. Te nastavitve naj se dodajo v nek modul, ki se naloži ob zagonu aplikacije.

 // v iskanje dodamo parcele
 Search.AddCategory('Katastrske parcele', 'parc', [parcele], 'hint', '')
 // določimo način prikazovanja parcel v programu
 Search.AddTemplate('txt', [parcele], '[F a], [F b],[F b]')
 // določimo način prikazovanja parcel na spletni strani
 Search.AddTemplate('htm', [parcele], '[F a]<br>[F b]<br>[F b]')

AddCategory

Metoda AddCategory doda novo kategorijo iskanja.

Method TSearch.AddCategory (Title, Name As String, Layer As TLayer, Fields, SQL As String)
TitleStringNaslov kategorije, ki se prikaže ob skupini zadetkov te kategorije,
NameStringIme oz. šifra kategorije, s katerim lahko omejimo iskanje samo na to kategorijo,
LayerTLayerPodatkovna plast, iz katere se črpajo podatki,
FieldsStringSeznam imen polj, ki jih uvrščamo v iskanje (ločena so z vejico),
SQLStringOpcijsko lahko navedemo še pogoj za filtriranje podatkov (če želimo uvrstiti v iskanje samo del podatkov).

AddTemplate

Metoda AddTemplate doda novo obliko prikaza zadetkov.

Method TSearch.AddCategory (Name As String, Layer As TLayer, Template As String)
NameStringIme oz. šifra predloge,
LayerTLayerPodatkovna plast, na katero je vezana predloga,
TemplateStringPredloga, ki se uporabi za oblikovanje zadetkov,

Izdelava indeksa

Sama nastavitev parametrov za "Full Text Search" ni dovolj, naslednji korak je izgradnja indeksa. Ta operacija je pri manjših podatkovnih plasteh skoraj trenutna, pri večjih pa lahko traja tudi nekaj minut.

 // na novo izgradi vse tiste indekse, ki so tega potrebni
 Search.BuildIndex('', False)

 // na novo izgradi indeks za kategorijo parc
 Search.BuildIndex('parc', True)

BuildIndex

Metoda BuildIndex na novo izgradi indeks za eno ali vse kategorije iskanja.

Method TSearch.BuildIndex (Category As String, Force As Boolean)
CategoryStringOpcijsko ime kategorije, za katero naj se na novo izgradi index. Če je ta parameter prazen, se na novo izgradijo vse kategorije.
ForceBooleanTrue, kadar želimo obvezno izgraditi indeks; 'false', kadar želimo izgraditi indeks le po potrebi.

Iskanje

Ko smo določili vse nastavitve iskanja ter izgradili indeks, se lahko lotimo samega iskanja.

Execute

Metoda Execute nam izvede iskanje po danem besedilu in vrne zadetke pretvorjene v željeno obliko.

Method TSearch.Execute (Query, Template, Category As String, Hits As Long) As String
QueryStringKljučne besede, ki jih iščemo. V seznamu zadetkov bodo le tisti zapisi, ki vsebujejo vse podane besede.
TemplateStringObvezno ime predloge, ki naj se uporabi za oblikovanje zadetkov,
CategoryStringOpcijsko ime kategorije, na katero želimo omejiti iskanje,
HitsLongNajvečje število zadetkov po kategoriji. Če je ta parameter 0, se izpišejo vsi zadetki, kar pa ni priporočljivo, ker jih je lahko zelo veliko.
ResultStringSeznam zadetkov v želeni obliki.
 // izpiše vse najdene  parcele 
 Write(Search.Execute('laško 223/1', 'txt', '', 10))

Filter

Metoda Filter nam izvede iskanje po danem besedilu in vrne zadetke kot seznam filtriranih zapisov. Nato jih lahko odpremo in pregedujemo v maski ali pa izpišemo v poročilu/dokumentu.

Method TSearch.Execute (Query, Category As String, Hits As Long) As Long
QueryStringKljučne besede, ki jih iščemo. V seznamu zadetkov bodo le tisti zapisi, ki vsebujejo vse podane besede.
CategoryStringObvezno ime kategorije, za katero izvesti iskanje,
HitsLongNajvečje število zadetkov po kategoriji. Če je ta parameter 0, se izpišejo vsi zadetki, kar pa ni priporočljivo, ker jih je lahko zelo veliko.
ResultLongŠtevilo zadetkov.
 // odpre najdene parcele v maski
 If Search.Filter('laško 223/1', 'parc', 10) > 0 Then
  [parcele].Form.Open
 EndIf