asked 2010-10-12 07:08:58 -0500Benoit
It appears that my askbot installation does not find any term of less than 4 characters.
I'm searching for terms like pci or mpc and even though they appear in question titles and are even tags, there is still no match.
Is this intentional behavior? Is there a way to fix this?
I can see wanting to limit useless matches (esp. if partial word matches occur), but sometimes, that's what we're searching for.
answered 2010-10-13 07:16:53 -0500Benoit
Turns out that MySQL can be tuned to do a
FULLTEXT search on smaller than 4 characters.
Here are the steps:
In the [mysqld] section, add the line:
Restart mysql server and rebuild the
FULLTEXT index on the
answer, question and tags tables:
REPAIR TABLE answer QUICK; REPAIR TABLE question QUICK; REPAIR TABLE tag QUICK;
At this point, the search will return 3 letter words.
MySQL full text search (the only option as of Oct 2010) matches for words longer than four characters.
With PostgresQL this limitation will be removed - it's a current (as of date of this answer) development item.
There is also one quirk in the full text search right now (will probably change in the future): if you type in a query that does not have any matches, but not hit enter - nothing will change on the screen. But if you hit "enter" or press the "search" button you'll get a blank list.
That is AJAX search does not yet give any feedback when no matches are found, which can leave user with an impression that it does not work.
I've done it this way to limit screen flickering when no new useful information is found. This should be somehow fixed - with maybe a phrase "nothing found yet" and shade out search results.
Create your Q&A site at askbot.com. Managed Askbot hosting at just $15/mo. Dedicated hosting, support contracts, consulting services.create your Q&A site
Asked: 2010-10-12 07:08:58 -0500
Seen: 76 times
Last updated: Oct 14 '10