Als «pattern-matching» getaggte Fragen


3
Wie wird LIKE implementiert?
Kann jemand erklären, wie der LIKE-Operator in aktuellen Datenbanksystemen (z. B. MySQL oder Postgres) implementiert ist? oder zeigst du mir ein paar Hinweise, die es erklären? Der naive Ansatz wäre, jeden Datensatz zu untersuchen, indem ein regulärer Ausdruck oder eine Teilzeichenfolgenübereinstimmung für das betreffende Feld ausgeführt wird, aber ich habe …

2
Wie erstelle ich einen Index, um eine aggregierte LIKE-Abfrage für einen Ausdruck zu beschleunigen?
Ich stelle möglicherweise die falsche Frage im Titel. Hier sind die Fakten: Mein Kundenservice hat sich über langsame Antwortzeiten beschwert, als er auf der Administrationsoberfläche unserer Django-basierten Site nach Kunden gesucht hat. Wir verwenden Postgres 8.4.6. Ich begann langsame Abfragen zu protokollieren und entdeckte diesen Täter: SELECT COUNT(*) FROM "auth_user" …

1
Warum würden Sie text_pattern_ops für eine Textspalte indizieren?
Heute haben mich sieben Datenbanken in sieben Wochen mit den Operatorenindizes vertraut gemacht. Sie können Zeichenfolgen für die Musterübereinstimmung mit den vorherigen Abfragen text_pattern_opsindizieren, indem Sie einen Operatorklassenindex erstellen , sofern die Werte in Kleinbuchstaben indiziert sind. CREATE INDEX moves_title_pattern ON movies ( (lower(title) text_pattern_ops); Wir haben die verwendet, text_pattern_opsweil …

2
Die Trigrammsuche wird viel langsamer, je länger die Suchzeichenfolge wird
In einer Postgres 9.1-Datenbank habe ich eine Tabelle table1mit ~ 1,5 Millionen Zeilen und einer Spalte label(vereinfachte Namen für diese Frage). Es gibt einen funktionalen Trigramm-Index für lower(unaccent(label))( unaccent()wurde unveränderlich gemacht, damit er im Index verwendet werden kann). Die folgende Abfrage ist ziemlich schnell: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) …



5
Matching a] (schließende eckige Klammer) mit PATINDEX unter Verwendung des Platzhalters „[]“
Ich schreibe einen benutzerdefinierten JSON-Parser in T-SQL † . Für den Zweck meines Parsers verwende ich die PATINDEXFunktion, die die Position eines Tokens aus einer Liste von Token berechnet. Die Token in meinem Fall sind alle Einzelzeichen und enthalten Folgendes: {} []:, Wenn ich die (erste) Position eines von mehreren …

7
Wie kann ich alle nachfolgenden Teilzeichenfolgen nach einem Delimeter generieren?
Bei einer Zeichenfolge, die mehrere Instanzen eines Trennzeichens enthalten kann, möchte ich alle Teilzeichenfolgen generieren, die nach diesem Zeichen beginnen. Wenn ich beispielsweise einen String wie 'a.b.c.d.e'(oder ein Array {a,b,c,d,e}, nehme ich an) gebe, möchte ich ein Array wie folgt generieren: {a.b.c.d.e, b.c.d.e, c.d.e, d.e, e} Die beabsichtigte Verwendung dient …


3
Sortieren nach Match von LIKE
Ich frage mich, wie ich SQL implementieren kann, um die Ergebnisse nach der besten Übereinstimmung eines ähnlichen Prädikats zu sortieren. Ich habe 100.000 Artikel in der Datenbank und wenn Benutzer einige Artikel nach einem Teil des Namens aufrufen. Ich möchte die Ergebnisse anzeigen, die nach der besten Übereinstimmung der gestellten …


1
Problem mit dem Mustervergleich für Unicode-Zeichen
Ich schreibe einen Code, der den Mustervergleich für Unicode-Zeichen verwendet, aber ich stoße auf ein seltsames Problem. Einige Charaktere funktionieren und andere nicht. DECLARE @Pattern nvarchar(50) = N'%[^a-z]%' -- Simple pattern SELECT PatIndex(@Pattern, nchar(46797)), nchar(46797) -- Works SELECT PatIndex(@Pattern, nchar(14843)), nchar(14843) -- Doesn't Work Das Muster sollte für jedes Zeichen …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.