aVogt
Returning Creator

Exalead: Suche in einem bestimmten Index (ohne JavaScript)

Hallo,

in Exalead (Version 4.6) haben wir mehrere Indexe für unterschiedliche Webseiten.

Um auf einer Webseite auch nur in dem dazugehörigen Index zu suchen, kann man den Abfragestring per JavaScript vor dem Absenden der Anfrage erweitern und den Namen des Index hinzufügen.
z.B: (corporate/tree:"Top/Source/ExaleadSource")

Nun könnten Besucher unserer Webseite JavaScript deaktiviert haben (was wir auch für viele Webseiten haben). Somit könnte bei diesen Besuchern der Abfragestring nicht mit dem speziellen Index erweitert werden und es würde in allen Indexen gesucht.

Hat jemand eine Idee, wie ich nur in einem bestimmten Index suche, ohne den Abfragestring mit JavaScript zu erweitern?

Grüße

Andreas

0 Kudos
3 Replies
feddersen
Community Manager

Die Manipulation mittels Javascript modifiziert ja auch nur den GET/POST Request des Formulars. Diese Manipulation können Sie natürlich auch serverseitig durchführen.

0 Kudos

Hallo,

das habe ich schon versucht, aber ohne Erfolg.

Laut Eingabeformular müsste der Wert des Feldes "q" manipuliert werden.
Da bekomme ich aber keinen Wert (null)
     session.getAttribute("q")

Dann gibt es den "searchString" darüber kann ich ändern:

<%
String queryS = (String) session.getAttribute("searchString");
out.println("queryS: " + queryS );
queryS = queryS + " (corporate/tree:\"Top/Source/SAB_sfo\")";
session.setAttribute("searchString", queryS);
out.println("nach Änderung: " + session.getAttribute("searchString") );
%>

Ausgabe:

     queryS: (Urlaub)
     query: (Urlaub) (corporate/tree:"Top/Source/SAB_sfo")

Das scheint ja erst mal ganz gut, aber die Suche wird nicht so ausgeführt. Sondern nur mit "Urlaub" und ohne den Zusatz der Source.

Muss noch ein Wert oder ein anderer gesetzt werden, danmit es funktioniert?

Auch das Einbinden der taglib nach der Manipulation hat nichts gebracht.
Muß ich die Suche nach dem Ändern des "searchString" noch mal neu anstossen - wie aber?

Grüße

Andreas

0 Kudos

Sie müssen schon die Suche "neu" anstoßen, also einen POST/GET Request an das Suchservlet schicken. Eine Manipulation der Sessionvariablen reicht nicht aus.

Optimalerweise schicken sie den erste Suchanfrage gar nicht ab, sondern fangen den Request ab, führen ihre Manipulation durch und schicken dann die Suchanfrage an Exalead.