Visuelles Beispiel

Volltextsuche

 

 
 

Allgemein

Das Modul beruht auf der Volltextsuche im SQL-Server in Kombination mit der Indizierung von Dateien durch den vom Betriebssystem bereitgestellten Dienst (Indexserver oder Microsoft Search). Durchsucht werden dabei contentXXL-Objekte (News, Kontakte, Dokumente etc.) unter Berücksichtigung der jeweiligen Benutzerrechte. Die Volltextsuche unterscheidet sich damit grundlegend vom Modul "Search Express", das Seiten indiziert. Es sollte geprüft werden, welches Modul den jeweiligen Anforderungen besser gerecht wird.

 

Was findet die Suche: Damit ein Objekt von der Suche gefunden wird, muss es irgendwo im Webauftritt existieren, sonst würde die Suche keinen Sinn machen. Das beutet, dass das Objekt in einem Modul veröffentlicht und freigegeben sein muss. Weiterhin muss des betreffende Modul auf einer Seite veröffentlicht sein, da sonst die Sichtbarkeit im Webauftritt nicht gegeben ist.

 

Hinweis: Welche Datenbankfelder die Volltextsuche durchsucht, kann sehr leicht kundenspezifisch angepasst werden. Gehen Sie hierzu im Microsoft SQl Server Management Studio in der jeweiligen Datenbanktabelle (z.B. dbo.News für Artikel) unter "Volltextindex" auf Eigenschaften. Nach Auswahl von "Spalten" kann man die gewünschte Felder aktivieren bzw. deaktivieren. Information zu weitergehender Customization finden Sie hier.

 

Troubleshooting: Die Verschlagwortung erfolgt durch den SQL-Server im Hintergrund. Je nach Auslastung kann es einige Minuten dauern, bis das Ergebnis für die Volltextsuche verfügbar ist. Werden Begriffe dann immer noch nicht gefunden, sollte im Microsoft SQl Server Management Studio in der jeweiligen Datenbanktabelle (z.B. dbo.News für Artikel) unter "Volltextindex" überprüft werden, ob Änderungen manuell nachverfolgen" sowie "Änderungen automatisch nachverfolgen" aktiviert ist. Falls nicht, wird der Volltextkatalog nicht aktualisiert.

 

 
 

Spezielle Einstellungen

Folgende spezielle Einstellungen können getroffen werden:

Im oberen Bereich des Formulars für spezielle Einstellungen wird zwischen

  • Grundeinstellungen und
  • Erweiterten Einstellungen

unterschieden.

 

Grundeinstellungen

Die Grundeinstellungen betreffen die

  • Auswahl der Suchbereiche
  • die Einstellungen für die einzelnen Suchbereiche
  • Featuremodus-Einstellungen
  • Auswahl der Suchmaske
  • Einstellungen für die Ergebnisliste

Suchbereiche: Wählen Sie hier die Bereiche (Objekttypen sowie Kategorien), nach denen gesucht werden soll. In den Eigenschaften für die einzelnen aktivierten Suchbereiche müssen weitere Einstellungen vorgenommen werden. (s.u.).

 

 

Hinweis: Die Reihenfolge der Anzeige von Ergebnissen kann in dieser Liste mit Drag & Drop und anschließendes Speichern umsortiert werden.

 

Eigenschaften der einzelnen Suchbereiche

Die einzelnen Objekttypen wie Kontakte, Artikel oder Dokumente können in den jeweiligen Trefferlisten unterschiedlich angezeigt werden. Folgende Einstellungen können hier nach einem Klick auf den Editbutton gewählt werden:

 

Einstellungen Ergebnisse für den jeweiligen Suchbereich.

  • Alle Resultate anzeigen: Aktivieren Sie diese Option, wenn Sie die Anzeige aller Ergebnisse für diesen Suchbereich auf einer Seite wünschen (d.h. kein Paging der Ergebnisse).
  • Ergebnisse pro Modul: Diese Einstellung betrifft das Paging und greift nur, wenn "Alle Resultate anzeigen" nicht aktiviert wurde. Die hier eingestellte Zahl begrenzt die Anzahl der Ergebnisse für diesen Suchbereich auf einer Seite.
  • Resultat Thema: Falls gewünscht, wählen Sie hier ein Modul-Template für die Trefferliste des Suchbereichs.

Die Ergebnisse können unterschiedlich auf einer ersten Seite (Erste-Resultate-Templates) und weiteren Seiten (Mehr Resultate Templates) dargestellt werden. Auf der ersten Seite werden Treffer aller ausgewählten Suchbereiche dargestellt, auf den weiteren Seiten nur noch Treffer des jeweils ausgewählte Suchbereichs. Wählen Sie die folgenden Templates für die „Erste Resultate Seite“ und für die „Mehr Resultate Seite“.

  • Kopfbereich: Wählen Sie das Template für den Kopfbereich aus.
  • Item Template: Wählen Sie das Template für ein Listenelemente der Trefferliste aus.
  • Alt. Objekttemplate: Wählen Sie optional das Template für eine alternierende Darstellung der Trefferliste aus.
  • Fußbereich: Wählen Sie das Template für den Fußbereich aus.

Achtung: Die "Erste Resultate-Templates greifen nur, wenn mehrere Suchbereiche ausgewählt wurden. Gibt es nur einen Suchbereich, werden die Ergebnisse immer mit den "Mehr Resultate-Templates dargestellt.

 

 

Featuremodus

  • Featuremodus: Ist diese Option aktiviert, wird auf eine von contentXXL gebildete Featuremodus-URL weitergeleitet.
  • Behalte Content Pane: Aktivieren Sie diese Option, wenn beim Einblenden der Suchergebnisse die Inhalte im Contentbereich nicht ausgeblendet werden sollen. Standardmäßig werden diese Inhalte ausgeblendet und durch die Suchergebnisse ersetzt.
  • Featuremodus – Link: Der hier eingetragene Wert wird an die von contentXXL gebildete Featuremodus-URL angehängt.

 

Suchmasken-Einstellungen

  • Template: Wählen Sie hier das gewünschte Formular-Template für die Suchmaske aus.

 

Ergebnisliste-Einstellungen

  • Ergebnisse auf Seite (tabid) anzeigen: Geben Sie optional die ID der Seite an, in deren Contentbereich die Ergebnisse angezeigt werden sollen. Standardmäßig wird die aktuelle Seite verwendet, von der die Suche ausging.
  • Alle Resultate anzeigen: Aktivieren Sie diese Option zur Anzeige aller Ergebnisse bereits auf der ersten Seite. Mit dieser Einstellung wird der unter "Ergebnisse pro Modul" eingetragene Wert ignoriert.
  • Sprachfilter ausschalten: Aktivieren Sie diese Option zum Ausschalten des Sprachfilters. Es werden dann Ergebnisse aller Sprachvarianten angezeigt. Standardmäßig werden nur Ergebnisse in der aktuellen Sprache angezeigt.
  • Kopfbereich: Geben Sie ein Template für den Kopfbereich der Trefferlisten an. Dies ist zu unterscheiden vom Kopftemplate des jeweiligen Suchbereichs.
  • Fußbereich: Geben Sie ein Template für den Fußbereich der Trefferlisten an. Dies ist zu unterscheiden vom Fußtemplate des jeweiligen Suchbereichs.
  • Modultemplate: Geben Sie ein Modultemplate für die Trefferlisten an. Dies ist zu unterscheiden vom Modul-Template (Resultat Thema) des jeweiligen Suchbereichs.
  • Ergebnisse pro Modul: Geben Sie an, wie viele Treffer initial mit den "Erste-Resultate-Templates" pro Suchbereich angezeigt werden sollen, sofern unter "Alle Resultate anzeigen" nicht angeklickt ist. Bei nur einem aktiven Suchbereich werden die "Erste Resultate-Templates" nicht angezogen und der hier spezifizierte Wert dient als Seitengröße beim Paging.
  • Kein Ergebnis: Geben Sie hier ein Template an, dass angezeigt wird, wenn die Suche keinerlei Ergebnisse findet. Dieses Template könnte ggf. Hinweise enthalten, wie der Benutzer weiter verfahren soll.
  • Leeres Suchwort verhindern: Diese Option verhindert eine leere Suche mit der darauffolgenden Anzeige aller Objekte. Leere Suchen beanspruchen in hohem Maß die Systemressourcen und haben negative Auswirkungen auf die Performance. Wir empfehlen daher, diese Einstellung zu aktivieren..
  • Veröffentlichungen Liste (Item Veröffentlichen): Wählen Sie ein Template zur Anzeige aus.
  • Veröffentlichungen Liste (letzter Eintrag): Wählen Sie ein Template zur Anzeige aus.

 

Erweiterte Einstellungen

In den erweiterten Einstellungen werden Einstellungen zum Suchverfahren getroffen.

Objekttypen Suche: Aktivieren Sie diese Option, wenn Sie die Suche auf bestimmte Typen eines Objektes einschränken wollen. Gemeint ist hierbei die unter dem Reiter "SEO" zugeordnete Typeninfo. Beispielsweise kann damit anstatt über den gesamten Suchbereich "News" nur über Artikel mit der Typinfo „Presseartikel“ gesucht werden.

  • Bezeichner für Suche über alle Objekttypen: Obsolet.
  • Objekttypen Einrückung: Obsolet.
  • Objekttypen Auswahl: Wählen Sie in der Dropdownliste den gewünschten  Suchbereich aus. Falls hierfür Typen definiert wurden, werden diese angezeigt. Aktivieren Sie die Klickfelder der Typen aus, nach denen gefiltert werden soll. Pro Modul kann somit nur innerhalb eines Suchbereichs nach Typinfos gefilter werden.

Suchmethode: Wählen Sie hier das gewünschte Suchverfahren aus. Bei der Eingabe von mehreren Begriffen kann nach irgendeinem der Wörter (ODER), allen Wörtern (UND), einem logischen Ausdruck (entsprechend Eingabe, möglich sind "+", "and", "und", "|", "or", "oder") sowie nach exakter Übereinstimmung der Begriffe gesucht werden.

Kategorien einschließen: Geben Sie eine oder mehrere durch Komma getrennte IDs von Kategorien an, wenn nur Treffer gefunden werden sollen, die einer dieser Kategorien zugeordnet sind. Optional können Unterkategorien in die Suche eingeschlossen werden.


 
 

 
 

Template: Kopf- und Fußbereich

<TABLE align="center">
<TBODY>
<TR>
<TD><SPAN [mvif:FirstPageLink:neq:]><A href="[FirstPageLink]"><< </A></SPAN></TD>
<TD><SPAN [mvif:PreviousPageLink:neq:]><A href="[PreviousPageLink]">< </A></SPAN></TD>
<TD>Page [CurrentPageIndex] of [PagesCount]</TD>
<TD><SPAN [mvif:NextPageLink:neq:]><A href="[NextPageLink]">> </A></SPAN></TD> <TD><SPAN [mvif:LastPageLink:neq:]><A href="[LastPageLink]">>> </A></SPAN></TD></TR></TBODY></TABLE>

 

Template: Suchformular

<SCRIPT language="vb" runat="server">
Sub Page_Load(o as object, e as eventargs) 
go.Attributes.Add("onclick", "mykeyhandler('" & go.ClientID & "')") 
End Sub
</script>

<SCRIPT type="text/javascript">
function mykeyhandler(sender) {
senderName = document.getElementById(sender).name;
document.getElementById(sender).focus();
document.forms[0].submit();
__doPostBack(senderName,'');
}
</SCRIPT>

<div class="navbar-form navbar-right global-search-form">
   <div class="input-group input-group-sm">
        [tb:query_string:class="form-control" dropdown="true"]
        <span class="input-group-btn"> 
        [ibnupdate:go:imageurl="~/portaldata/1/resources/internal/lens-16.png" class="btn btn-sm btn-default navbar-search-btn"]
        </span>
       [DropDownInclude]
       <script type="text/javascript">document.getElementById('<%=query_string.clientid %>').value='';</script>
   </div>     
</div> 

Die zur Eingabe des Suchbegriffs verwendete Textbox muss die ID "query_string" aufweisen, der Button zum Absenden (lbn, ibn, ibnupdate, bn) die ID "go". Mit dem Attribut dropdown="true" wird die Dropdownliste mit den Suchvorschlägen (Platzhalter [DropDownInclude]) aktiviert. 
Ist in den Moduleinstellungen die Objekttypen-Suche aktiviert, kann im Template eine Dropdown-Liste mit den verfügbaren Typen hinterlegt werden: [ddl:type:][/ddl]. Wird hier ein Typ ausgewählt, werden nur entsprechende Treffer gefunden.
Mit folgendem Eintrag im Template kann nach der gewählten Kategorie gefiltert werden:
[ddl:category][li:text:value]...[/ddl]

 

Weiterführende Information zum Thema "Hervorheben (Highlighten) von Suchbegriffen" finden Sie im Partner- und Supportportal.

 

Hinweis: Die Listenansichten für die Ergebnisse der einzelnen Suchbereiche (Item templates) sind Templates der jeweiligen Modultypen und werden dort getemplated.

 
 

Platzhalter: Kopf- und Fußbereich

Platzhaltername

Typ

Platzhalterbeschreibung

[CurrentPageIndex]

integer

Aktuelle Seitennummer – Paging.

[FirstPageLink]

string

Url zur ersten Seite – Paging.

[IsFirstPage]

string

Gibt "true" zurück, wenn es sich um die erste Seite handelt, ansonsten einen leeren String.

[IsLastPage]

string

Gibt "true" zurück, wenn es sich um die letzte Seite handelt, ansonsten einen leeren String.

[IsMoreLink]

string

Gibt “true” zurück, wenn ein MoreLink zu einer Seite mit weiteren Resultaten existiert, ansonsten einen leeren String. Dieser Platzhalter wird dazu verwendet, den “MoreLink” auf einer Seite mit den ersten Ergebnissen darzustellen. Der Klick auf diesen Link führt dann zur Seite mit allen Resultaten. 
Beispiel: <span [mvif:ismorelink:neq:]><a href="[morelink]">show all results</a></span>

[LastPageLink]

string

Url zur letzten Seite – Paging.

[MoreLink]

string

Url zur Seite mit allen Ergebnissen. Der Link sollte demnach nur auf der Seite mit den ersten Ergebnissen verwendet werden.

[NextPageLink]

string

Url zur nächsten Seite – Paging.

[ObjectsFound]

integer

Obsolet.

[PagesCount]

integer

Anzahl aller Ergebnis-Seiten für einen Suchbereich.

[PagesFound]

integer

Obsolet.

[PageSize]

integer

Anzahl der Objekte pro Seite.

[PagesNavigation]

string

Obsolet.

[PreviousPageLink]

string

Url zur vorherigen Seite – Paging.

[PrintLink]

string

Url zur Druckansicht.

[SearchExpression]

string

Der Ausdruck, nach dem gesucht wurde.

[SearchTimeMiliSecond]

integer

Gibt an, wieviele Millisekunden die Ausführung der Suche benötigt hat.

[SearchTimeSecond]

integer

Gibt an, wieviele Millisekunden die Ausführung der Suche benötigt hat.

[TotalResults]

integer

Anzahl der Objekte, die im Suchbereich gefunden wurden.

Platzhalter: Kein Ergebnis

Platzhaltername

Typ

Platzhalterbeschreibung

[val:SearchExpression]

string

Der Ausdruck, nach dem gesucht wurde.

Platzhalter: Suchformular

Platzhaltername

Typ

Platzhalterbeschreibung

[DropDownInclude]

string

Stellt beim Eintippen des Suchbegriffs Vorschläge als Dropdownliste bereit. Der Platzhalter muss dabei immer ganz unten im Template platziert werden. Weitere Hinweise finden Sie unter den Reitern "Instant Search" und "Templating".

 
 

Instant Search

Die Instant Search ist eine dynamische Suchfunktion, die analog Google bereits beim Eintippen eines Suchbegriffs Vorschläge anzeigt .

 

Einrichtung:

Erstellen Sie ein Suchformular wie unter dem Reiter "Templating" beschrieben mit einer Textbox [tb: query_string:dropdown = "true"] und dem Platzhalter [DropDownInclude] ganz unten im Template. Dieser Platzhalter gibt Javascript-Code aus, der eine autosuggest.js und autosuggest.css einbindet. Falls gewünscht, können Sie unter ~/portaldata //styles/autosuggest.css eine eigene Stylesheet-Datei hinterlegen, die die contentXX-Styles überschreibt (die contentXXL-Datei als Vorlage finden Sie unter ~/css/autosuggest.css).

Achtung: Der Platzhalter: "DropDownInclude" muss am unteren Rand des Templates stehen!

Aktivieren Sie in der web.config die Webservices: HttpGet und HttpPost wie folgt, damit die Ajax-Funktionalität verfügbar ist:

<webServices>
     <protocols>
       <add name="HttpGet" />
       <add name="HttpPost" />
      </protocols>
</webServices>)

 

Funktionsweise:

Wenn ein Benutzer nun einen Begriff im Suchfeld eingibt, werden ihm dynamisch Suchbegriff-Vorschläge vom System über frühere Suchanfragen gemacht. Diese Suchbegriff-Vorschläge kommen aus Ihrer Datenbank. Jeder gesuchte Begriff wird als Schlüssel in der contentXXL-Datenbank gespeichert, zur Laufzeit ausgewertet und dem Benutzer als Vorschlag angezeigt.

 

Hinweis: Suchvorschläge können auch spezifisch für ein bestimmtes Suchmodul ausgegeben werden, d.h. nur Treffer, die auch bei einer Suche in diesem Modul gefunden werden, rufen einen Vorschlag hervor. Dies kann nützlich sein, wenn mehrere Suchmodule mit unterschiedlichen Suchbereichen auf der Seite vorhanden sind. Es muss lediglich ein mid-Parameter mit der ModulID des Moduls im Suchformular-Template hinterlegt werden wie z.B.

[tb:query_string:width="144" mid="7" columns="10" dropdown="true"]

Informationen zum Hinterlegen einer Unworteliste (Badwordlist) finden Sie im Partner- und Supportportal.