- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Datenquelle Eintrag abfrage case insensitive
Hallo,
ich mรถchte mit FirstSpirit Integration (FSI) etwas in einer Datenquelle suchen. Dabei sollte Groร- und Kleinschreibung ignoriert werden.
In "normalem" SQL wรผrde ich sowas in der Art wie "where tolower(name) like tolower(suchbegriff)" machen (richtige Syntax sei jetzt mal dahingestellt)
Wie mache ich das aber bei FSI?
<QUERY entityType="datenquellenname">
<LIKE attribute="name_DE" datatype="java.lang.String" value="<%=searchfor%>"/>
</QUERY>
"searchfor" ist der Suchbegriff, der bereits escaped und ggf. in Kleinbuchstaben daher kommt...z.B: "Test"
Datenquelle sieht in etwa so aus:
Test 1
Test 2
Test 3
Suchbegriff "Test" funktioniert, "test" nicht. (Oracle DB)
Die Hilfe und das Handbuch haben mich leider nicht weiter gebracht...
Vielen Dank und viele Grรผรe
Jannis
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich kann doch nicht der erste sein, der in einer Datenbank was suchen mรถchte...wie habt Ihr es bei Euch implementiert?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jannis,
die Frage hatte ich schon mal dem Helpdesk (2008) gestellt. Ich glaub aber auch, dass sich da nichts geรคndert hat:
> Gibt es in der o.g. Content-Select-Funktion so eine Einstellung?
> Beim "normalen SQL-Select" wรผrde man ein "upper" oder "lower" in der Abfrage angeben.
absolut richtig. Doch in FirstSpirit implementierte Datenbankschnittstelle ist ja datenbankunabhรคngig. D.h. FirstSpirit gibt schon die Sortierung vor und leitet diese an die DB weiter, doch letztendlich liegt die Entscheidung der Sortierungsart bei der DB selbst. Unter Oracle kann man (meines Wissens nach) einstellen, dass diese bei der Sortierung per default zwischen Klein-/Groรschreibung nicht unterscheidet. Eine andere Lรถsung/Workaround kann ich Ihnen hier (zumindest mit FS 4.0) leider nicht bieten.
Wenn es nicht gerade riesen Datenmengen sind, kรถnnte man รผber alle Eintrรคge iterieren (also kein <LIKE attribute..> angeben - was natรผrlich nicht performant ist) und dann selbst den test durchfรผhren. Aber vieleicht hat noch jemand anderes eine hilfreiche Idee.
Grรผรe aus Dresden
Andreas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke. Ja ich hab dann die "von Hand Methode" implementiert, damit es erstmal รผberhaupt geht - sprich "Datensatz so stark einschrรคnken wie es geht und dann programmatisch prรผfen ob das aktuell auszugebene Dokument dem Suchbegriff รคhnelt..." Ich hoffe ja, dass da ein paar Cachingfunktionen im Hintergrund noch halbwegs annehmbare Performance leisten kรถnnen....*seufz*
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oracle sollte sich auch so konfigurieren lassen, dass Suchabfragen case-insensitive beantwortet werden.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
evftl. hilft folgendes weiter
http://www.dba-oracle.com/t_case_insensitive_indexes_searches.htm
create index
nlsci1_gen_person
on
MY_PERSON
(NLSSORT
(PERSON_LAST_NAME, 'NLS_SORT=BINARY_CI')
)
;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
also unsere (bereits so konfigurierte) Oracle-DB liefert bei dem Statement "select * from table_name order by name asc" folgende Auflistung:
achim
Albert
Bruno
claus
dieter
In FS (R4) mit der Abfrage
<QUERY entityType="table_name">
<ORDERCRITERIA attribute="name" descending="0"/>
</QUERY>
Folgendes:
Albert
Bruno
achim
claus
dieter
Gibt es hier noch weitere Mรถglichkeiten, die Auflistung wie aus der DB zu erhalten? Vielleicht ein Attribut oder Flag? Denn anscheinend รคndert ja FS die erhaltene List und gibt diese gruppiert nach Groร- und Kleinschreibung weiter bzw. aus.
Das ist ein Punkt, der unserem Kunden wichtig ist. Oder kann / soll dies als ChangeRequest diskutiert werden?
Danke vorab fรผr eine Antwort,
Grรผรe aus Hamburg,
Matthias Przybylski
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FirstSpirit selber sortiert nichts automatisch um, eventuell ist das eine Eigenschaft des JDBC-Treibers?
Ansonsten gibt es natรผrlich noch die Mรถglichkeit, im Template manuell zu sortieren.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das manuelle Sortieren kann ich wohl ncith umsetzen, da es sich um eine Combobox in einem Eingabeformular handelt, welche auf eine andere Tabelle zugreift und fรผr die Sortierung eine Abfrage nutzt.
Also wie folgt:
<CMS_INCLUDE_OPTIONS type="database">
<LABELS>
<LABEL lang="*">#item.name</LABEL>
</LABELS>
<QUERY name="data.sort_mytable"/>
<TABLE>data.mytable</TABLE>
</CMS_INCLUDE_OPTIONS>
Wir prรผfen mal den Treiber...
Danke fรผr den Tip!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
die manuelle Sortierung mรผsste aber auch funktionieren (ohne es jetzt getestet zu haben!) in dem sie einfach das QUERY-Tag erweitern
<QUERY name="data.sort_mytable">
<ORDERCRITERIA attribute="ATTRIBUT" descending="NUMERISCHER_BOOLESCHER_WERT" />
</QUERY>

