Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle Fuzzy Search avec des espaces

Veuillez d'abord vérifier la documentation de Fuzzy opérateur

Notez qu'un terme ne contient généralement pas de blanc et vous devrez diviser votre recherche en plusieurs termes.

Notez également que fuzzy pour être activé, le terme doit comporter au moins 3 caractères . Donc votre exemple avec PO ne fonctionnera pas.

Ce que vous pouvez faire pour votre configuration est de définir un fuzzy supplémentaire recherchez chaque partie de votre chaîne floue et combinez-les avec le near opérateur comme suit

 contains(po_number,'near (( fuzzy(word1,,,weight),fuzzy(word2,,,weight) ), 2, TRUE)',1) > 0

near impose ici que les deux correspondances doivent être adjacentes (span =2) et ordonné (TRUE ).

La gestion des caractères spéciaux dépend de la définition de votre whitespace et printjoins dans votre préférence .