Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_getsearchitems_ad

mi_GetSearchItems_Ad

Liefert aus der Tabelle „SearchItems“ „Ersetzungen“ von Suchbegriffen zurück, die in einer Suche kein Ergebnis liefern würden.

Hintergrund:
In der Tabelle „SearchItemLacks“ werden alle Suchbegriffe gespeichert, die in einer Suche verwendet wurden, wobei diese Suche jedoch keine Ergebnisse lieferte. Nun kann ein Administrator sich die am häufigsten verwendeten Begriffe durch mi_GetSearchItemLacks_Ad anzeigen lassen und herausfinden, nach was die Nutzer möglicherweise gesucht haben. Beispielsweise wird häufig das Suchwort „Hosen“ verwendet, die Produktbezeichnungen sind aber durchgängig in Englisch gehalten. Also wird ein Administrator in „SearchItems“ vielleicht die Übersetzung „Hosen“→„Pants“ eintragen (→ mi_ModifySearchItems_Ad). Wird jetzt ein Nutzer nach „Hosen“ suchen, kann die Suchen-Prozedur zwar zunächst wieder keine Artikel-Elemente finden, hat aber einen Hinweis auf „Pants“ und gibt somit die über diesen Suchbegriff gefundenen Elemente zurück.

Anmerkung:
Zur Zeit wird die Tabelle nur von den Prozeduren im_SearchProductTreeNodes_Ad und „…_Pu“ verwendet; allerdings sind die Tabellen „SearchItems“ und „SearchItemLacks“ prinzipiell für jegliche Suchen geeignet, die sich auf Suchbegriffe für bestimmte MERKMALE stützen - wie z.B. eine Suche nach Eigenschaften von Personen (derzeit noch nicht im „public“-Bereich implementiert). Daher gibt es auch den Parameter „TableID“.

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategoriemiscellaneous
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
TableID ID der Tabelle auf die sich die Ersetzungen der Suchbegriffe beziehen. Mögliche Werte : siehe Aufruf „exec mi_GetTabsRefInOtherTabs_Ad UsedInSearchItems = 1“, Rückgabespalte „TableID“.
tinyint3.5.18
CharacteristicIDNULL ID eines Merkmals, zu dem Eigenschaften in der durch „TableID“ symbolisierten Tabelle existieren. Wenn angegeben werden nur die Datensätze mit Suchbegriffen zu diesem Merkmal zurückgegeben.
smallint3.5.18
SearchValueNULL Ein Suchbegriff - falls angegeben werden nur Datensätze aus „SearchItems“ zurückgegeben, in denen eine Ersetzung dieses Begriffs hinterlegt ist
varchar(600)3.5.18
MatchingValueNULL Eine Ersetzung für einen Suchbegriff. Optionaler Parameter, um die Rückgabemenge auf die Datensätze zu beschränken, in denen ein Suchbegriff durch dieses „Wort“ ersetzt wird.
varchar(600)3.5.18

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
TableIDID der Tabelle auf die sich die Suchbegriffe beziehen. Mögliche Werte : siehe Ergebnis des Aufrufs „exec mi_GetTabsRefInOtherTabs_Ad UsedInSearchItems = 1“.
tinyint3.5.18
CharacteristicIDID eines Merkmals (zu dem in der durch „TableID“ symbolisierten Tabelle Eigenschaften hinterlegt sind), zu dem es ersetzte Suchbegriffe („SearchValue“ → „MatchingValue“) gibt
smallint3.5.18
SearchValueEin Suchbegriff zum Merkmal „CharacteristicID“, der durch „MatchingValue“ ersetzt werden kann
varchar(600)3.5.18
MatchingValueBegriff nach dem anstelle von „SearchValue“ gesucht werden kann
varchar(600)3.5.18
UseLikeDiese Spalte sollte besser heißen „UseMatchingValueOnlyWithLike“, denn :
„1“ : Die Ersetzung „MatchingValue“ darf nur verwendet werden, falls mit dem „LIKE“-Operator gesucht wird
„0“ : Keine Einschränkung bzgl. des „LIKE“-Operators
bit3.5.18

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-501Der Parameter „TableID“ und/oder der Parameter „TableKeyID“ ist ungültignur indirekt
-500Falsche Parameternur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
7.0.2 2013-08-291. Datentyp-Erweiterung der Parameter „SearchValue“ und „MatchingValue“ [von „100“ auf „600“]
2. Doku-Anpassung bzgl. der Rückgabespalte „SearchValue“ und „MatchingValue“ [Datentyp von „100“ auf „600“
erweitert]
6.5.3 2013-03-18Anpassungen an den aktuellen Quellcode-Standard, u.a. wg. UTF8-Unterstützung
4.0.14 2004-06-031. Aufruf der Prozeduren „_mi_StartProcedure“, „_mi_FinishProcedure“ und „_mi_ChooseParamValueSeperator“
2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur
4.0.6 2003-11-141. Änderung der Doku bzgl. des Parameters „TableID“
2. Änderung des Checks bzgl. „TableID“
3. Dokumentation der Rückgabemenge fehlte
4.0.3 2003-07-10Änderung bzgl. „TableID“ : „2“ statt „1“ für „NodeCharacteristicValues“
3.5.18 2002-05-15Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/mi_GetSearchItems_Ad?TableID=<value>'

Mit xmllint 6) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/mi_GetSearchItems_Ad?TableID=<value>' | xmllint --format -
dStore_php
use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
	'mi_GetSearchItems_Ad',
		array(
			'TableID' => <value>,
			// 'CharacteristicID' => NULL,
			// 'SearchValue' => NULL,
			// 'MatchingValue' => NULL
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

XML zur Ausführung mit der Methode engine/execute, z.B. per

curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?>
<ListOfBatches>
	<Batch No="0">
		<Procedure Name="mi_GetSearchItems_Ad">
			<Parameters>
				<Parameter Name="TableID"><!-- tinyint value --></Parameter>
				<!-- <Parameter Name="CharacteristicID">NULL</Parameter> -->
				<!-- <Parameter Name="SearchValue">NULL</Parameter> -->
				<!-- <Parameter Name="MatchingValue">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/mi_getsearchitems_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)