I'm, once again, not 100% certain I should be posting this here and not in the main Ruby forum, please tell me if I should be posting there instead. I'm designing a web-app that will contain a table with a couple of identifying fields and about 15 'attribute' fields. I'm then going to allow the creation of 'data profiles'. A user can create a data profile, and they should get immediate returns on all current matching (and matching isn't required to be 100%... as a matter of fact, the chances of getting a 100% match should be fairly low) results, and the profile will continue to live in the system, adding on new results, and taking off ones that are invalidated as the data table is updated (new items being entered, or old items being changed). The only way I can think of to do this is to perform a full-on search against each individual attribute in the data table, then compile a list of items in the data table that match each profile, and to what percentage they match. That's going to scale into ridiculousness give any decent size for either or both tables... but I have no idea how to do this any other way. Anyone got any bright ideas?
on 2007-01-12 21:10
on 2007-01-12 21:42
If you are planning on searching a lot through your data, I suggest you take a look at a good search engine like Ferret or act_as_solr. Or even Lucene or Solr if you have any Java experience. For example in Ferret you could apply a boots, to make certain fields more important than others and Ferret already gives a relevancy score. Doing a full-text search in MySQL could give you scaling problems in the long run. Good luck. Kind regards, Nick Snels - http://railshostinginfo.com Compare and review Rails hosting