2011-01-03 15 views
4

Welche Abfrage wird verwendet, um nach Text zu suchen, der dem Operator like entspricht?Postgres Volltextsuche wie Operator

ich über Volltextsuche-Abfrage bin zu fragen, die von der Form

SELECT * FROM eventlogging WHERE description_tsv @@ plainto_tsquery('mess'); 

ich Ergebnisse mit „message“ wollen als gut, aber gerade nicht funktioniert es nicht wieder etwas

Antwort

9

Wenn ich die description in the manual richtig gelesen, müssen Sie to_tsquery() statt plainto_tsquery zusammen mit einem Platzhalter verwenden, den Abgleich von Präfixen zu ermöglichen:

 
SELECT * 
FROM eventlogging 
WHERE description_tsv @@ to_tsquery('mess:*'); 
+6

gibt es irgendetwas für Suffix passend auch – user373201

+0

Danke für die Antwort. Es klappt – user373201

-3

Sie LIKE verwenden können für genaue Fallübereinstimmungen oder ILIKE für Groß- und Kleinschreibung. Verwenden Sie die % als Ihren Platzhalter.

Dies passt alles mit 'SomeThing' drin (Groß-/Kleinschreibung beachten).

SELECT * FROM table WHERE name LIKE '%SomeThing%' 

Dies entspricht allem, das mit "ing" endet (Groß-/Kleinschreibung wird nicht beachtet).

SELECT * FROM table WHERE name ILIKE '%ing' 
+0

ich über Volltextsuche-Abfrage bin zu fragen, was ist der Form SELECT * FROM Ereignisse WHERE description_tsv @@ playto_tsquery ('mess *'); Ich will Ergebnisse mit der Nachricht auch aber richtig nicht, es gibt nichts zurück – user373201