Hi I want to implement a search on a website which includes imperfect search results. Meaning, if the search term is misspelled or slightly different from a 100% match, the function should still return results which are sorted by similarity in terms of the search keyword.
I already have implemented algorithms like Smith-Waterman and Needleman-Wunsch which also can be used for database searching. So my idea was to run those algorithms against every keyword in the database and sort them by the score of each result.
Is this a good idea? I am using ASP.NET in C#. Are there any tools or tricks which can accomplish this for me without using my own methods? My biggest concern is performance, after all those algorithms create at least one two dimensional matrix, calculate its values and perform a traceback.
Any suggestions?
-
1Have you tried Lucene?Robert Harvey– Robert Harvey2014年07月08日 20:33:47 +00:00Commented Jul 8, 2014 at 20:33
-
@RobertHarvey No I have not. But it looks just like the .NET port could fit my needs.チーズパン– チーズパン2014年07月09日 05:43:24 +00:00Commented Jul 9, 2014 at 5:43
-
@RobertHarvey Care to write an awnser? I will mark it as such!チーズパン– チーズパン2014年11月21日 07:51:52 +00:00Commented Nov 21, 2014 at 7:51
1 Answer 1
You could do that. But as mentioned by Robert in the comments you could avoid a lot of trouble by using a library, such as Lucene. In your case (.NET) you should pick the Lucene.net port.