Re: Query taking long with levenshtein function

From: "Edward J(dot) Sabol" <edwardjsabol(at)gmail(dot)com>
To: pgsql-admin <pgsql-admin(at)lists(dot)postgresql(dot)org>
Cc: Teju Jakkidi vlogs <teja(dot)jakkidi05(at)gmail(dot)com>
Subject: Re: Query taking long with levenshtein function
Date: 2023-03-01 00:22:08
Message-ID: 3F924798-147F-4EC7-8F36-8559BCE456A2@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Feb 28, 2023, at 6:31 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:


Teju Jakkidi vlogs <teja(dot)jakkidi05(at)gmail(dot)com> writes:


We have a query as below which uses the levenshtein function to compare



strings.


SELECT "name", levenshtein("name",'some string') as p FROM table1



where levenshtein("name",'some string')   <= 2 order by p desc;


We have a GIST index built on top of this table as below:



CREATE INDEX gist_idx ON table1 USING GIST("name");

AFAIK, that index is completely useless for this query.  I don't

really see a good way to index it either --- "levenshtein distance

less than X" seems like a not very tractable requirement.  Can

you formulate your matching rules some other way?

Can you use trigram similarity instead? That has index support...

Reference links:


















F.35. pg_trgm


postgresql.org



























Optimize PostgreSQL query with levenshtein() function


stackoverflow.com










Since they are so similar, I also wonder how difficult it would be to take the pg_trgm module and modify it to work with levenshtein() instead....

Regards,

Ed

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Edward J. Sabol 2023-03-01 06:57:11 Re: Query taking long with levenshtein function
Previous Message Tom Lane 2023-02-28 23:30:51 Re: Query taking long with levenshtein function