Currently we have full-text searching on titles/descriptions for classified ads, parcels etc.
This however has one major problem; keyword whoring. All I have to do to get extra hits is take my land's description and put as many dirty words into it as I can, relevant or not.
This feature suggestion proposes a more restricted search system using tags.
A tag is simply a key-word or key-phrase related to your property, classified or event. When you list anything in search therefore you will be asked to enter some tags up to a limit, say 10 for the sake of argument (a dynamic limit based on behaviour would be nice though).
Tags have the following advantages:
- They force users to consider what words/phrases are most relevant, instead of putting as many as they can in. Thus reducing keyword abuse
- They allow descriptions and titles to be descriptions and titles again!
- Easy to order results by relevance (e.g if my search matched 5 tags it would have a relevance of 5, MySQL can do this already).
- Reduced work indexing every description/title!
- Plenty of scope for extra features such as statistics (X people found your property through Y keyword, allowing you to cull infrequently searched ones and try others). Also allowing residents to report false keywords, if a lot of people searching for that word report it as abuse it can be removed (and counted against the offender's listing behaviour rating).
This can be implemented as easily as adding an extra text field to searches and full-text indexing it (removing the indexes on descriptions and titles later when tags have been adopted more widely). This field simply lists tags separated by spaces. You then just add a check which ensures no duplicate tags are added (avoiding ten instances of 'sex' to get a higher ranking) and to ensure no-one lists more tags than they're allowed.
A more advanced system would take a list of words that have been entered, and then create a table of word-usages (ie word ID 19 was used by advert ID 234). Using these relations it's dead easy to pull out relevant results and it adds room for stat tracking and such (ie if a user goes to a search result, then all tags that were matched by that result will have their visitors count increased).
A tag based system has no major disadvantages except that a huge parcel may struggle to list everything it offers, but this is often the case with generic malls and the like which should consider what they're customers typically come for, or post classifieds to fill the gaps.
An example of the self-policing system is that each tag is tracked (as per the 'advanced' layout above), and additionally has a 'reports' column. If a tag receives more than 5 or 10 reports or something, AND 10% or more visitors who came via that tag reported it (uniquely to avoid abuse) then that tag will be removed, and the user who listed it may have their tag allowance reduced for future listings.
But yeah, a tag system would greatly benefit searches and reduce the potential for abuse by forcing users to pick keywords that are actually relevant to what they're offering.
A thought, though. Instead of a hard limit on the number of tags a property can list, have a charge per tag. say, 100 L$ or so. And allow unlimited tags so long as you can afford it.
For the sake of smaller companies, perhaps allowing 2 or 3 tags for free woukld be good. And also an additional cost based on the number. like after the 10th, you pay an extra 5% per tag. after 20th, all tagd are 10% more expensive. And so on. Thusly to discourage one big corporation form buying every tag and showing up in every search
Something like that would provide a nice money sink for the economy, to counteract the sources from all the premium accounts.
one problem, though. Assuming several places have the same relevance for a particular search, how then to order them. It's generally presumed that traffic is on the way out, so is there some other way?
I think the fairest way to order searches of same relevance, would simply be to randomise them.