oracle - Search for similar words using an index -
i need search on db table using kind of fuzzy search 1 oracle , using indexes since not want table scan(there lot of data).
i want ignore case, language special stuff(ñ, ß, ...) , special characters _, (), -, etc...
search "maria (cool)" should "maria- cool" , "maría_cool" matches.
possible in oracle in way?
about case, think can solved created index directly in lower case , searching lower-cased. not know how solve special chars stuff.
thought storing data without special chars in separated column , searching on returning real one, not 100% sure perfect solution.
any ideas?
maybe utl_match can help.
but can create function based index on, lets say, this:
regexp_replace(your_column, '[^0-9a-za-z]+', ' ')
and try match this:
... regexp_replace(your_column, '[^0-9a-za-z]+', ' ') = regexp_replace('maria (cool)' , '[^0-9a-za-z]+', ' ')
here sqlfiddle demo it's not complete, can start
Comments
Post a Comment