I am about to make a simple search facility on my website, where a user will enter around 2-4 keywords which will get searched in two columns in a table in my MS SQL database. One column is a varchar (50) called title and one column is a varchar(2500) called description. There will be about 20,000-30,000 records potentially at any one time to search.
The keywords will need to return "the best matches" - you know the kind you get on search pages like ebay that return the closest matches. The way I was thinking of doing this is seems kind of naive - I thought I can read all 30,000 records of the table into and object like this:
public class SearchableObject
{
string Title {get; set;}
string Description {get; set;}
int MatchedWords {get; set;}
}
Then create a List of that object e.g List go through all 30,000 records, populate the List, find out the ones that match most times and return the top 10 using something like
if Description.contains(keyword1);
But then find out how many times it occurs in the string to populate the MatchedWords field.