wiki:simpleSearch

Version 3 (modified by dwinter, 17 years ago) (diff)

--

Wie funktioniert simple search?

  • In der SQL Vision-Visiondatenbank wird ein zusätzlicher View eingerichtet, der alle Felder zusammenfasst die in Simple Search durchsucht werden sollen.
    CREATE OR REPLACE VIEW simple_search AS 
    (( SELECT vision_main.id_image, vision_main.short_title AS simple_search
       FROM vision_main
    UNION 
     SELECT vision_main.id_image, vision_main.description AS simple_search
       FROM vision_main)
    UNION 
     SELECT vision_main.id_image, vision_main.artist_author AS simple_search
       FROM vision_main)
    UNION 
     SELECT vision_main.id_image, vision_main.object_title AS simple_search
       FROM vision_main;
    
    
  • Dieses Feld kann dann mit der Funktion
       def ZSQLMultiSearch(self,_table,_searchField,_value,_idField,_additionalStatement="",_select=None,_storename=None):
            """
            Durchsucht in einer Tabelle "table" die Spalte "searchfield" nach dem allen Vorkommnissen 
            von Worten in value und gibt alle Werte mit gleichem id field zurück, d.h. es wird die "und" suche über mehrere Eintrsege in einer
            Tabelle mit gleichem idField werd realisiert, 
            z.B. für simplesearch ueber mehrere Felder
            @param _table: Tabelle, die durchsucht werden soll.
            @param _searchField: Feld, das durchsucht wird
            @param _value: String der gesucht werden soll, gesucht wird nach allen Worten des Strings, die durch " "-getrennt sind.
            @param _idField: Feld mit id für die identifikation gleicher Einträge
            @param _additionalStatement: (optional) Zusaetzliches SQL Statement, dass zwischen dem ersten "select from" und dem ersten "where" eingegefügt wird.
            @param _select: (optional) Alternativer Wert für den ersten SELECT Aufruf.
            @param _storename: (optional) Name fuer die Zwischenspeicherung von Werten in der Session
            """
    

durchsucht werden.

Beispiel:

<form action="multiSearchDB" method="get">
<!--<input type="hidden" name="_sort" value="artist_author">-->
<input type="hidden" name="_table" value="simple_search">
<input type="hidden" name="_additionalStatement" value="v left outer join vision_images i on (v.id_image = i.id) left outer join vision_main j on (v.id_image = j.id_image) ">
<input type="hidden" name="_select" value="i.filename as filename, j.*">
<input type="hidden" name="_searchField" value="simple_search">
<input type="hidden" name="_idField" value="v.id_image">

<table>
  <tr>
    <td class="fieldname">Simple Search (search in author, title, description, short title)</td>
    <td><input name="_value" size="50"></td>
  </tr>
</table>
<input type="submit">


</form>