Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuzzy Search Testing on Card Database #82

Closed
AlanOC91 opened this issue Jul 8, 2019 · 5 comments
Closed

Fuzzy Search Testing on Card Database #82

AlanOC91 opened this issue Jul 8, 2019 · 5 comments

Comments

@AlanOC91
Copy link
Owner

@AlanOC91 AlanOC91 commented Jul 8, 2019

I've implemented v1 of Fuzzy Search testing on our Card Database.

This does not apply to the filters in advanced card search.

The main search bar (top of the page) but homepage search bar will be using this.

Flow:

  • This example assumes the user is not using our auto-complete feature.
  • The user uses the following search term: "blue eyes white dragon".
  • The system does an exact card name match against the database.
  • Normally this would fail with 0 results since the actual card is "Blue-Eyes White Dragon".
  • Since 0 results are returned, it uses it's fallback option which is MySQL Full Text Search.
  • This will return cards based on relevance of the keywords entered. In this case, "Blue-Eyes White Dragon" is returned as the card with the highest relevance.
  • Finally, if MySQL Full Text Search also returns 0 results, bring the user to the search page.

Examples so far:

  • blue eyes white dragon = Blue-Eyes White Dragon
  • dark magic girl = Dark Magician Girl
  • genie of the lamp = La Jinn the Mystical Genie of the Lamp
  • inspector board = Inspector Boarder
  • ultimate moth = Perfectly Ultimate Great Moth
  • borreload = Borreload Dragon
  • called grave = Called by the Grave

And so on.
This is a work in progress but should enhance the search system.

@AlanOC91
Copy link
Owner Author

@AlanOC91 AlanOC91 commented Jul 11, 2019

Plans for the next version include:

  • An exact match is done on the card but but it will also do an exact match minus special characters (- , . # ' : )
  • It will then move on and do the MySQL Full Text Search

I'm also looking at refining the Full Text Search results slightly.

Loading

@AlanOC91
Copy link
Owner Author

@AlanOC91 AlanOC91 commented Jul 22, 2019

New updated to make "Number" cards easily accessible. These cards don't work with Fuzzy Searching because the actual number is ignored.

So typing "Number 42" is seen simply as "Number" and will provide a random number card.

I'm pushing out an update within the next hour that fixes this.

So by then, typing "Number 42" will bring you to "Number 42: Galaxy Tomahawk"

Loading

@AlanOC91
Copy link
Owner Author

@AlanOC91 AlanOC91 commented Jul 22, 2019

Number change is now live.

Loading

@AlanOC91
Copy link
Owner Author

@AlanOC91 AlanOC91 commented Sep 17, 2019

Add new flow for Archetype.

So if a user types in an archetype exactly, example, Blue-Eyes then it will bring you to the advanced search page for that archetype.

Example flow:

  • Exact Name
  • Advanced search page when you type exact match an Archetype
  • Fuzzy Search

Loading

@AlanOC91
Copy link
Owner Author

@AlanOC91 AlanOC91 commented Sep 24, 2019

New flow complete + bug fixes (# or : would crash the program) + case-insensitive.

Making it case-insensitive means "elemental hero wild" and "elemental Hero WILD" will return the same result.

It will now do a further check for archetypes.

Current flow.

User types "blue-eyes" and hits enter:

User types "blue-eyes white" and hits enter:

User types "Blue-Eyes White Dragon" and hits enter:

Loading

@AlanOC91 AlanOC91 closed this Sep 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant