SearchProducts2

SearchProducts
MAIN
 
Rückgabewert
GridStruct
RET
GridStruct
 
Parameterliste
index
IN
RegularStringWithSingleContent
 
startingAt
IN
RegularNumericValue
 
searchExpression
IN
LongStringWithSearchContent
 
sortedBy
IN
LongStringWithOptionalMultiContent
 
resultAmount
IN
RegularNumericValue
 
filteredWith
IN
LongString
 
resultAttributes
IN
LongStringWithOptionalMultiContent
 
prodArtResultAttributes
IN
LongStringWithOptionalMultiContent
 
scoringContext
IN
RegularNumericValue
 
Kurzbeschreibung:
Dieser Service liefert von einem Index eine maximale Anzahl Treffer, die indirekt ermittelt werden. Dazu werden zuerst die Treffer ermittelt, welche der Search-Expression und der Einschränkung über filteredWith genügen (Faktor 5, also resultAmount * 5, resultAmount * 25 etc.). Auch die Sortierung erfolgt zu diesem Zeitpunkt! Anschliessend werden Produktartikel und Produkte reduziert. Die reduzierte Trefferliste umfasst maximal startingAt + resultAmount Datensätze und wird abschliessend über eine zweite interne Abfrage mit Produkt-Daten ergänzt bevor sie in Form der Spalten, welche in resultAttributes aufgeführt sind, retourniert wird. Als Ergänzung zu SearchProducts ist es hier möglich zusätzliche Produktartikel-Rückgabespalten anzufordern. Die Scores der ersten Abfrage sind relevant für die Rückgabe!
Bemerkungen:
Gesucht wird nur in dem Mandanten, der via Kontext mitgegeben wird.
Ist resultAmount nicht angegeben, so werden fix maximal 100 Datensätze retourniert, ansonsten wird die Eingabe gegen die Obergrenze 1‘000‘000 des Parameter-Datentyps validiert.
(1): System.ServiceBus.GeneralServerError
(2): Search.IndexRepoActualizationFailed
(3): Search.FilteredWithSyntaxFailure
(4): Search.NoIndexRepoEntryForIndexName
(5): Search.NoActRdyIndexForIndexName
(6): Search.NoIndexDefHelperForIndexName
(7): Search.AttributeNotAvailable
(8:) Search.AttributeNotSortable
(9): Search.AttributeNotFilterable
(10): Search.AttributeNotAccessible
(11): Search.InvalidSearchExpression
(12): Search.SearchProducts2Failed

            
Erläuterungen:
(1) = Unerwarteter Fehler mit Beschreibung 
(2) = IndexRepository-Aktualisierung fehlgeschlagen 
(3) = Der Filter-Ausdruck ist ungültig 
(4) = Kein IndexRepository-Eintrag diesen Index 
(5) = Kein verfügbarer Index mit diesem Namen 
(6) = Der IndexDefinitionHelper ist nicht verfügbar 
(07) = Das Attribut steht nicht zur Verfügung 
(08) = Das Attribut ist kein Sortier-Attribut
(09) = Das Attribut ist kein Filter-Attribut
(10) = Das Attribut ist kein Rückgabe-Attribut
(11) = Ungültiger Suchausdruck
(12) = Fehler bei der eigentlichen Suche

            
Wichtig
Wichtig
Der Service SearchProducts2 ist explizit als Ergänzung des Katalog-Konzepts zu verstehen.
Voraussetzung für ein korrektes Funktionieren ist:
  • Der Index MUSS auf dem BusinessObject CatItem beruhen.
  • Der Index MUSS über eine IsAccessible-Spalte mit dem Namen CatItem.ArtInternalNo verfügen.
  • Der Index MUSS über eine IsAccessible- & IsFilterable-Spalte mit dem Namen CatItem.ItemTypeCd verfügen.
  • Der Index MUSS über eine IsAccessible- & IsSearchable-Spalte mit dem Namen CatItem.ProdArtInternalNo verfügen.
  • Die CatItem-Daten müssen gemäss Konzept abgefüllt sein. Sind sie das nicht, können die Rückgabedaten oder die Sortierung fehlerhaft ausfallen.
Notiz
Notiz
  • Index
    Ein Index, der physikalisch zur Verfügung stehen muss.
  • startingAt
    Der Startwert 1 (auch 0 ist hier erlaubt) bedeutet: ab dem ersten Datensatz.
  • searchExpression
    In der searchExpression können Wildcards verwendet und einzelne Suchausdrücke mit AND (Default) und OR verknüpft werden.
  • sortedBy
    Bei diesem Parameter können mehrere Attribute des Index durch Komma getrennt (Bsp: Attr1, Attr2 desc) angegeben werden, vorausgesetzt sie wurden vorgängig als sortierbar definiert. Die gültigen Sortierrichtungen sind asc, ascending (Default) wie auch desc, descending (String-Sortierung nach en-US, CaseSensitive). Ohne Angabe der Sortierung werden die Treffer (Lucene interner Standard) nach Score sortiert. Sobald beim Aufruf eine eigene Sortierung angegeben wird, wird der Score nicht berechnet und erscheint als "n. def." im Resultat. Der Score als Sortier-Attirbut ist nicht erlaubt, da im Falle einer eigenen Sortierung lediglich physikalisch vorhandene Spalten (die in der Konfiguration als IsSortable markiert sind) verwendet werden können.
  • resultAmount
    Dieser Parameter gibt an, wie viele Datensätze retourniert werden sollen.
  • filteredWith
    Die Filterung kann auf allen Spalten erfolgen, welche vorgängig als filterbar definiert wurden. Gefiltert wird in aller Regel über eine Kombination von Ausdrücken der Art (Spalte Operator Wert). Die String-Filterung erfolgt normalerweise Case-Insensitiv. Case-Sensitiv gefiltert werden kann über spezielle Operatoren.
  • resultAttributes
    Es können alle Attribute angegeben werden, welche vorgängig als Rückgabe-Attribute definiert worden sind. Ohne Angabe von resultAttributes wird lediglich die Spalte BOID retourniert. Der * retourniert alle definierten Rückgabe-Attribute. Das Rückgabe-Attribut Score ist zulässig. Dieses wird jedoch durch Lucene nur ermittelt, wenn keine eigene Sortierung angegeben wird, ansonsten wird "n. def." retourniert.
    FirstArtInternalNo kann ebenfalls on demand abgefragt werden. In diesem resultAttribut steht bei Produkten die aus nachgeladenen Produktartikeln hervorgehen, der ursprüngliche Artikel.
    Im DebugMode können der Inhalt von SeachContent und der Inhalt der als IsSearchable markierten Spalten angefragt werden.
  • prodArtResultAttributes
    Als prodArtResultAttributes können alle Attribute angegeben werden, welche vorgängig als Rückgabe-Attribute definiert worden sind. Dabei muss bei allen hier aufgelisteten Attributen zwingend der Präfix ProdArt_ vorangestellt werden. Der * retourniert alle definierten Rückgabe-Attribute.
    Mit diesem Parameter können somit on demand alle Produktartikel-Daten auch dann abgefragt werden, wenn diese im Fall von resultAttributes durch Produkt-Daten ersetzt werden.