Zusammenfassen und ENTHÄLT in SAP HANA
Betrachten Sie die folgenden Einträge in meiner Tabelle:
- rot apple
- gelb apple
- apple grün
- rotple
- appel gelb
Mehreren Leuten aufgefüllt haben, diese Tabelle mit einem nicht-besteht notation (die Farbe vor oder nach 'apple'), der auch in einige Rechtschreibfehler.
Jetzt möchte ich Abfrage alle Einträge mit dem Wort apple
, unabhängig von Farbe oder Schreibweise.
Mit FUZZY()
:
SELECT name FROM "NEO_123456789ABCDE"."MYTABLE1" WHERE contains(name, 'apple', FUZZY(0.5))
Erhalte ich nur:
- rot apple
- rotple
Beim hinzufügen von Platzhaltern:
SELECT name FROM "NEO_123456789ABCDE"."MYTABLE1" WHERE contains(name, '%apple%', FUZZY(0.5))
Bekomme ich nur alle Einträge, wo apple
wurde geschrieben Recht:
- rot apple
- gelb apple
- apple grün
Warum kann ich nicht beides kombinieren Betreiber WIE und ENTHÄLT in einer Abfrage?
Ich brauche zu finden:
- Einträge, wo
apple
ist umgeben von anderen Worten (in meinem Fall Farben) - alle Formen der
apple
(unabhängig von der Schreibweise)
Warum nicht ändern Sie einfach die "fuzzy-Ebene":
ein fuzzy-Wert von 0,2 ist in der Regel viel zu gering, um aussagekräftige Ergebnisse zurück
WHERE contains(name, 'apple', FUZZY(0.2))
scheint zu tun, was Sie wollen.ein fuzzy-Wert von 0,2 ist in der Regel viel zu gering, um aussagekräftige Ergebnisse zurück
InformationsquelleAutor user1170330 | 2015-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Abfrage im Grunde schließt sich die Suchergebnisse von contains-Klausel mit der fuzzy-Suche und die normale Suche. Sie können auch ersetzen Sie den Teil II der Abfrage mit like statt.
InformationsquelleAutor Abhishek Jain
Des fuzzy-Algorithmus matches gegen den kompletten Inhalt der Spalte in deinem Beispiel. So vergleicht er "apple" mit "red apple" und "appel gelb"
Was Sie wollen, ist ein Abgleich gegen die Token, die in Ihren Spalten. Sie können dies erreichen, indem erstellen einen Volltext-index, der die tokenisierung der Inhalte in den Spalten in einem fulltext-index. contains() wird automatisch der Volltext-index.
InformationsquelleAutor Pascalius
Vielleicht sollten Sie versuchen, die folgenden standard-sql-Abfrage :
Diese Abfrage wählen Sie Ihre äpfel.
Über Ihre fuzzy, warum nicht verwenden es mit einer Unterabfrage ?
So etwas wie :
FUZZY()
. Ich brauche diese, um alle zu finden von Rechtschreibfehlern.ich hatte übersehen, dass ein Teil. --> meine aktualisierten Meldung
Das Ergebnis ist nur
red apple
.InformationsquelleAutor RMS