TSearch

Iz SDMS
Jump to navigationJump to search
Ta stran je trenutno še v izdelavi.

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

Določanje osnovnih nastavitev iskanja

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('parc', 'txt', '[F a], [F b],[F b]')
 // določimo način prikazovanja parcel na spletni strani
 Search.AddTemplate('parc', 'htm', '[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.AddTemplate (Category, Name, Template As String)
CategoryStringIme kategorije, na katero je vezana predloga,
NameStringIme oz. šifra predloge,
TemplateStringPredloga, ki se uporabi za oblikovanje zadetkov,

Izgradnja in osveževanje 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 po ključnih besedah

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

Execute

Metoda Execute 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 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.Filter (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 želimo 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

Sintaksa iskanja

aaa bbb ccc

cat:parc

max:100

pre:ddd

not:eee

Uporaba v spletnih in mobilnih aplikacijah

...

Novo

AddHeaderFooter

Metoda AddHeaderFooter .

Method TSearch.AddHeaderFooter (Template, Header, Footer As String)
TemplateString.
HeaderString.
FooterString.

BuildStyle

Lastnost BuildStyle .

RO Property TSearch.BuildStyle (S As String) As String
SString.
ResultString.

BuildTemplate

Lastnost BuildTemplate .

RO Property TSearch.BuildTemplate (S, Category, Fields As String) As String
SString.
CategoryString.
FieldsString.
ResultString.

CategoryLayer

Lastnost CategoryLayer .

RO Property TSearch.CategoryLayer (Category As String) As TLayer
CategoryString.
ResultTLayer.

CategoryNames

Lastnost CategoryNames .

RO Property TSearch.CategoryNames As String
ResultString.

CategoryTitles

Lastnost CategoryTitles .

RO Property TSearch.CategoryTitles As String
ResultString.

Clear

Metoda Clear .

Method TSearch.Clear

Debug

Lastnost Debug .

Property TSearch.Debug As Boolean
ResultBoolean.

FormAll

Metoda FormAll .

Method TSearch.FormAll (Category, Query As String)
CategoryString.
QueryString.

FormOne

Metoda FormOne .

Method TSearch.FormOne (Category As String, Ptr As Long)
CategoryString.
PtrLong.

ShowAll

Metoda ShowAll .

Method TSearch.ShowAll (Category, Query As String)
CategoryString.
QueryString.

ShowOne

Metoda ShowOne .

Method TSearch.ShowOne (Category As String, Y1, X1, Y2, X2 As Float)
CategoryString.
Y1Float.
X1Float.
Y2Float.
X2Float.