Ask Your Question
1

Is there a minimum character count on a query?

asked 2010-10-12 07:08:58 -0500

Benoit gravatar image Benoit flag of United States
865 22 8 31

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.

delete close flag offensive retag edit

2 Answers

Sort by ยป oldest newest most voted
2

answered 2010-10-13 07:16:53 -0500

Benoit gravatar image Benoit flag of United States
865 22 8 31

updated 2010-10-14 20:26:42 -0500

Evgeny gravatar image Evgeny flag of Chile
11059 50 84 182
http://askbot.org/

Turns out that MySQL can be tuned to do a FULLTEXT search on smaller than 4 characters. Here are the steps:

  • Edit the mysql config file (mine was /etc/my.cnf)

In the [mysqld] section, add the line:

ft_min_word_len=3

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.

link publish delete flag offensive edit

Comments

Great. I've added an option to settings. "settings"->"data entry rules"->"minimum length of search word" to support ajax search for custom minimum length search word. Evgeny ( 2010-10-14 19:05:20 -0500 )edit
Yep your instructions work, I've enabled this on askbot.orgEvgeny ( 2010-10-14 19:25:07 -0500 )edit
... also you should rebuild index for table `tag` Evgeny ( 2010-10-14 19:27:16 -0500 )edit
edited your post in part to test the fixed database and actually you are using html within posts where you could more easily enter text with markdown. sorry for "breaking into" your post. Evgeny ( 2010-10-14 20:28:07 -0500 )edit
0

answered 2010-10-12 11:55:32 -0500

Evgeny gravatar image Evgeny flag of Chile
11059 50 84 182
http://askbot.org/

updated 2010-10-12 15:07:49 -0500

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.

link publish delete flag offensive edit

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Reliable Askbot Hosting

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
30 days free trial

Question tools

Follow
1 follower

subscribe to rss feed

Stats

Asked: 2010-10-12 07:08:58 -0500

Seen: 76 times

Last updated: Oct 14 '10