Announcement

Collapse
No announcement yet.

Can't search for three-letter words?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wayne Luke
    replied
    MySQL is server software... It doesn't necessarily refer to the actual machines or computers.

    Leave a comment:


  • Eagle Creek
    replied
    Originally posted by Wayne Luke View Post
    There really aren't that many 3-letter words to search for and get meaningful results. The cost of reconfiguring all our servers, restarting them and rebuilding all the indexes plus the overhead with continual use aren't justified.
    That's what I mean .

    Leave a comment:


  • jasonlitka
    replied
    Originally posted by Eagle Creek View Post
    Just wondering: why is a server restart needed?
    It's not. If you're referring to my post then I meant "MySQL Daemons", not "MySQL servers"

    Leave a comment:


  • Eagle Creek
    replied
    Just wondering: why is a server restart needed?

    Leave a comment:


  • jasonlitka
    replied
    I can honestly say that I've never had that problem when rebuilding an FT index. Since I switched to the FT search I've moved from a range of 4-10 to 3-12 and now to 3-15 and didn't have a problem on any of those.

    What command are you using to rebuild the indexes?

    Leave a comment:


  • Scott MacVicar
    replied
    2.2.4 is being rolled for approval on the httpd-dev list, we're looking forward to it to fix a few bugs with mod_proxy.

    I tried last night with the indexes while fixing another table, we ended up with.

    Error 'Incorrect key file for table './vbulletin_forum/post.MYI'; try to repair it' on query. Default database: 'vbulletin_forum'. Query: 'INSERT INTO post <snip>', Error_code: 126

    Leave a comment:


  • jasonlitka
    replied
    Originally posted by Scott MacVicar View Post
    I'll be doing it in when we have our upgrade to Apache 2.2.4 scheduled, but we got plenty of errors about the index file being corrupted and every single one of them was a table containing a full text index.

    I'll do the changes when we have time, not before. Searching for 3 letter words isn't something that justifies downtime.
    I never said it was. I was just tossing out a few ideas on how you could minimize the downtime.

    EDIT: Wait, where do you see that httpd 2.2.4 was released?

    Leave a comment:


  • Scott MacVicar
    replied
    I'll be doing it in when we have our upgrade to Apache 2.2.4 scheduled, but we got plenty of errors about the index file being corrupted and every single one of them was a table containing a full text index.

    I'll do the changes when we have time, not before. Searching for 3 letter words isn't something that justifies downtime.

    Leave a comment:


  • jasonlitka
    replied
    Originally posted by xtf View Post
    How did that happen?
    I thought MySQL didn't read the conf files while it's running?
    Ooh... I wonder if they tried running 'myisamchk' while mysqld was running. That could be how the corruption happened. You really should have mysqld stopped when you do that...

    Leave a comment:


  • xtf
    replied
    Originally posted by Scott MacVicar View Post
    We tried already without restarting and got several corrupt index files that we had to rebuild. This was on the slave servers as well as the master.

    The manual also states they need to get rebuilt.
    How did that happen?
    I thought MySQL didn't read the conf files while it's running?

    Leave a comment:


  • jasonlitka
    replied
    Originally posted by Scott MacVicar View Post
    We tried already without restarting and got several corrupt index files that we had to rebuild. This was on the slave servers as well as the master.

    The manual also states they need to get rebuilt.
    Well, you do need to restart mysqld after you change those values. What you don't need to do is actually run "REPAIR TABLE ... QUICK" immediately after the restart. Your DB will continue to function as it did before, with a minimum of 4 characters, until you do run the REPAIR statements.

    What I was saying is that you can space those REPAIR statements out over a week or so so that each outage is short.

    You can control the downtime even more closely by not allowing the rebuild to cascade automatically to the slave server(s). By running the REPAIR on your slave server(s) first and then adding "LOCAL" after the word "REPAIR" when running on the master, you can halve the downtime for each rebuild session.
    Last edited by jasonlitka; Wed 3rd Jan '07, 12:51pm.

    Leave a comment:


  • Scott MacVicar
    replied
    We tried already without restarting and got several corrupt index files that we had to rebuild. This was on the slave servers as well as the master.

    The manual also states they need to get rebuilt.

    • 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.3, “System Variables”.) 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:
      Code:
      [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.

    Leave a comment:


  • jasonlitka
    replied
    Originally posted by Scott MacVicar View Post
    We have got plans to do it at some point, the old servers had 3 letter full text indexes.

    The reason we can't is that it requires a serious amount of downtime to rebuild 21 fulltext indexes on a large amount of tables. We can't really afford to be down for that long.
    I recently extended my search from 3-12 to 3-15 and it doesn't need to be done all at once. Just reconfigure the MySQL servers to have a min length of 3 instead of 4 and restart them.

    At that point you can just schedule a few indexes per day and rebuild them. I didn't have more than a few minutes of downtime per day on any given site and I have 12G of DB data (well, 24GB if you count the slave).

    Leave a comment:


  • xtf
    replied
    Originally posted by Lats View Post
    The wildcard still works, so enter xbt* to get results.
    That doesn't work. It searches for words of at least four letters that start with xbt.

    Leave a comment:


  • Scott MacVicar
    replied
    We have got plans to do it at some point, the old servers had 3 letter full text indexes.

    The reason we can't is that it requires a serious amount of downtime to rebuild 21 fulltext indexes on a large amount of tables. We can't really afford to be down for that long.

    Leave a comment:

widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
Working...
X