PDA

View Full Version : Can't search for PM


hambil
05-22-2006, 02:39 AM
I guess it's too few letters. Anyway, not being able to search for hacks with PM in their title is a problem, and annoying. Please make sure the hack database addresses this issue :)

Xenon
05-22-2006, 12:42 PM
hmm, i think that's a problem with fulltext search and mysql which appears to all board, not just here.

we'll think about that for the new features :)

Paul M
05-22-2006, 02:09 PM
Assuming you use fulltext search here then yes, it's a mysql problem.

I haven't looked into it fully but I don't think mysql has any sort of exceptions list for words smaller than the default it uses. Indexing all two letter words would not be a good idea.

Xenon
05-22-2006, 02:45 PM
well, i didn't look into it much further either, but it'S definitelly a mysql thing, as we use full text search here ;)

hambil
05-22-2006, 02:51 PM
You can set it in vBulletin under Message Search Options. You may need to also set it on the MySQL server itself. However, it can be done. vBulletin also provides an exception list to exclude common two letter words. I have my forum setup this way and it works fine.

Xenon
05-22-2006, 02:53 PM
it's not a problem of vb.

exclude words is easy, you talk about include words, and as we using full text, you have to set it on mysql (if that's possible) which would at least need a serveradmin, nothing i can do myself...

hambil
05-22-2006, 02:57 PM
it's not a problem of vb.

exclude words is easy, you talk about include words, and as we using full text, you have to set it on mysql (if that's possible) which would at least need a serveradmin, nothing i can do myself...
I'm not quite sure what you are saying. Setting it in vb is a snap. Took me about ten minutes to change the setting and come up with a list of common two letter words (via google). vBulletin screens out those words before even sending them to MySQL.

Since every board gets it's own MySQL database having your host change the minimum too two letters should not be a problem.

Marco van Herwaarden
05-23-2006, 08:23 AM
Those vBulletin settings only have an influence if you are using the vB search engine, not if you are using MySQL Full Text searches.

Zachery
05-23-2006, 08:46 AM
I'm not quite sure what you are saying. Setting it in vb is a snap. Took me about ten minutes to change the setting and come up with a list of common two letter words (via google). vBulletin screens out those words before even sending them to MySQL.

Since every board gets it's own MySQL database having your host change the minimum too two letters should not be a problem.
MySQL FullText searching is limited to msyql, not vB, the vB search settings as marco has said do not take effect on mysql's fulltext searches.

We'd need to recompile php, and make it search very tiny words, this would mean the indexes would grow larger and be less useful and drain the server more.

I very much doubt we are going to allow mysql to index 2 letter words.

hambil
05-23-2006, 09:22 AM
Those vBulletin settings only have an influence if you are using the vB search engine, not if you are using MySQL Full Text searches.
vBulletin disagrees with you.

hambil
05-23-2006, 09:32 AM
MySQL FullText searching is limited to msyql, not vB, the vB search settings as marco has said do not take effect on mysql's fulltext searches.

We'd need to recompile php, and make it search very tiny words, this would mean the indexes would grow larger and be less useful and drain the server more.

I very much doubt we are going to allow mysql to index 2 letter words.
This is also incorrect. You don't need to do anything with php.



The minimum and maximum lengths of words to be indexed are defined by the ft_min_word_len and ft_max_word_len system variables. (See Section 5.2.2, ?Server System Variables? (http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html).) The default minimum value is four characters; the default maximum is version dependent. If you change either value, you must rebuild your FULLTEXT indexes. For example, if you want three-character words to be searchable, you can set the ft_min_word_len variable by putting the following lines in an option file:
[mysqld]
ft_min_word_len=3
Then you must restart the server and rebuild your FULLTEXT indexes. Note particularly the remarks regarding myisamchk in the instructions following this list
In addition, MySQL's default stop word list (http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html) already contains most common 2 letter words. And you can create your own stop word list, again with no need to rebuild anything other than your indexes.

Did I not mention I have this working on my board?

Zachery
05-23-2006, 10:01 AM
Sorry its late/early. I'm fairly sure Kier is not going to recompile mysql or add any setting changes to my.cnf when there is more than just vBulletin.org to think about. I'm personally more than well aware of how to make these changes.

Zachery
05-23-2006, 10:07 AM
<a href="http://www.vbulletin.com/forum/showthread.php?t=156946&highlight=fulltext" target="_blank">http://www.vbulletin.com/forum/showt...light=fulltext</a>

hambil
05-23-2006, 10:47 AM
Sorry its late/early. I'm fairly sure Kier is not going to recompile mysql or add any setting changes to my.cnf when there is more than just vBulletin.org to think about. I'm personally more than well aware of how to make these changes.
Ultimately that is the staffs choice. I only wanted to point out that it can be done fairly easily, and that some common acronyms like PM and ICQ, AIM, MSN, etc... don't work in searchs with the current setup. Which is an issue when searching for hacks related to these words.

BTW the thread you pointed out incorrectly states that three letter words would need to be removed from the stop list and MySQL recompiled if you changed the minimum to 3 letters. Since you don't want those words in the stop list indexed because they are too common, that would be the exact wrong thing to do. There are four letter and even larger words in the stop list, and the default minimum is 4 letters, so why would dropping it to 3 or 2 mean you have to remove 3 and 2 letter words from the stop list?

Xenon
05-23-2006, 07:12 PM
Ultimately that is the staffs choice.

yeah, but server staff. As i clearly pointed out, vb.org staff cannot do changes to the mysql settings ...

the vb.org setting would include 2 letter words like pm, but mysql doesn't in the currentl situation, and i don't have an idea iv you can manually add 'some' 2 letter words to the index, like pm....

hambil
05-23-2006, 07:14 PM
Three letter words too, like MSN and ICQ as I pointed out. If we can't do it via MySQL fulltext search, we might want to consider alternate search techniques (in addition to fulltext) for the hack database - such as tags.

Zachery
05-23-2006, 07:42 PM
I think I linked to the wrong thread, basicly setting fulltext to only use a 2 or 3 word mininum would cause us to lose any benifity that the fulltext search currently has.