sillsdev / sillsdev/languageforge-lexbox

Use fuzzy string matching for similar project name detection

Open
#1,008 1 comment 0 reactions 1 assignee View on GitHub

@rmunn is already working on this.

Since Aug 6, 2024.

📦 Lexbox enhancement GraphQL
Dominant language
C#
Stars
9
Forks
8
Avg merge
2d 13h
Merged PRs (30d)
49

Description

Describe the feature
Use fuzzy string matching for project name matching (see #979).

Who is this feature for?
When users create a new project, #979 uses simple string.Contains logic to look for projects with similar names. But Postgres has a built-in feature for fuzzy string matching using Levenshtein distance; you just have to enable the extension in your ModelBuilder configuration. We might want to improve the project-name matching by using fuzzy string matching to find similar projects.

There's even a version that makes the search efficient: you define a maximum distance, and as soon as Postgres determines that the actual distance would be larger, it stops calculating. So you can write FuzzyStringMatchLevenshteinLessEqual(needle, haystack, 5) <= 5 and get a list of similar strings without wasting too much time on dissimilar ones.

Pages affected
Project creation page

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.