AutoCompleteSearch für BlogEngine

06.02.2011 | 22:06

Jeder von euch kennt die AutoComplete Suche von Google, sobald man ein Wort eingibt, werden die ersten Suchergebnisse präsentiert:

 

Diese Funktion hat mir in BlogEngine gefehlt, aus diesem Grund habe ich die AutoCompleteSearch Extension entwickelt und gleich hier im Blog eingebaut :-)
Ihr braucht nicht mehr lange suchen, einfach ein Teilbegriff eingeben und es werden alle Posts nach Titel gefiltert.

Hier ein Screenshot mit dem Standard Indigo Theme:

 

 

Und hier mein aktueller Theme:

 

 

 

 

Installation:

 

1) Zuerst muss das AJAX Control Toolkit heruntergeladen werden: http://ajaxcontroltoolkit.codeplex.com/releases/view/43475

2) Die AjaxControlToolkit.dll in das Bin Verzeichnis kopieren.

3) Die AjaxControlToolkit Assembly in der Web.config unter system.web\pages\controls registrieren:

<add assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagPrefix="ajaxToolkit"/>

 

4) AutoCompleteSearch Extension herunterladen und entpacken.

5) Das komplette AutoCompleteSearch Verzeichnis ins User control Verzeichnis kopieren.

6) Die AutoCompleteSearch.css in den jeweiligen Theme Ordner kopieren.

7) In der Masterpage (site.master) das Control registrieren:


<%@ Register Src="~/User controls/AutoCompleteSearch/AutoCompleteSearch.ascx"
TagPrefix="pri" TagName="AutoCompleteSearch" %>

 

8) In der Masterpage  (site.master) im Header Bereich die AutoCompleteSearch.css registrieren:

    <link rel="stylesheet" href="AutoCompleteSearch.css" type="text/css" /> 

 

9) Innerhalb der form den ToolkitScriptManager einfügen:


<ajaxToolkit:ToolkitScriptManager runat="server" EnablePageMethods="true"
ID="ScriptManager1" CombineScripts="false" />

 

10) Jetzt nur noch das Control an die gewünschte Position innerhalb der Masterpage platzieren:

      <pri:AutoCompleteSearch ID="autocompletesearch" runat="server" />  

 

Fertig, wenn alles geklappt hat, müssten nun eure BlogPosts gefiltert werden :-)

 

 

Hinweis:  AutoCompleteSearch funktioniert momentan nur mit einer Datenbankanbindung, XML Dateien werden momentan nicht unterstützt!
Das Control wurde mit einem SQL Server 2008 getestet.

 

 

Caching...

Kurz noch zum Caching, da der Webservice die Daten aus der Datenbank lädt, werden die Posts für eine bessere Performance zwischengespeichert. Dadurch wird verhindert, dass ständig eine Datenbankverbindung besteht. Als Standard Wert für die Zwischenspeicherung wird im Code 6 Stunden definiert.

 

 

Dies kann geändert werden, indem man in der Web.config eine neue AppSetting mit dem key ExpirationHours erstellt:

<add key="ExpirationHours" value="10"/>

Diese Einstellung erhöht das Caching auf 10 Stunden.

 

 

Download: AutoCompleteSearch-1.2.zip (4,92 kb) [Downloads: 293]

 

UPDATE:

Das Control wurde vom BlogEngine Team auf die Extensions Seite aufgenommen:

http://www.dotnetblogengine.net/page/extensions.aspx

Tags: ,

Comments (3) -

2/26/2011 12:48:35 PM #

Geert van Horrik

I have created a widget. This way, you don't have to embed the search in the masterpage itself.

You can simply copy the existing Search widget and modify that one (really easy). Too bad xml is not supported, since that is the mostly used storage as far as I know. Any plans on this?

Geert van Horrik Netherlands

4/9/2011 6:28:38 PM #

Dennis Alexander Petrasch

Hallo Patrick!

Ich habe deine Komponente etwas erweitert und arbeite an einer etwas verbesserten Lösung. Ich strebe an das der Eintrag direkt geöffnet wird, sobald man ein Item aus der Liste selektiert. Evtl. hast Du eine Idee?

Grüße

Dennis Alexander Petrasch Germany

7/16/2011 10:55:12 AM #

Schlank schlafen

Vielen Dank für die Erweiterung, ich werde es gleich auf einem meiner Blogs ausprobieren.

Schlank schlafen Germany

Pingbacks and trackbacks (1)+

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading