Jump to content

We cant search 3 letters/less. REALLY?


sasiko

Recommended Posts

Posted
2 hours ago, Rhett said:

I can confirm this is working after clearing the cache, here are the currently needed steps to do this.

 

  • In your my.cnf or your mysql config file, (will vary depending on setup) add/edit the following line
  • 
    ft_min_word_len=3

     

  • Restart mysql
  • Rebuild search index in IPS4
  • Run the first step of the support tool to clean the cached files mentioned above.
  • Success! 

 

Are you going to apply the change here as well?

3 letter search is so essential when looking for things and currently it doesn't seem to work here.

I presume the same would apply for Aurora parameters.

Posted

I´m not understand the IPS 4 new search. In 3.4 all words was finded, but not now. Search can find word like P2 but not saw or her. I got many files that have the word saw, but search finds nothing If not the word saw has two lines like saw II.

 

Posted

Just a heads up that a recent bug fix has caused some problems in that if you are using InnoDB for your posts table and are setting the InnoDB character search variable to determine the minimum number of characters to search that variable is ignored, as shown above, IPS now reads the MyIsam ft_min_word_len variable *exclusively*  to determine the minimum search length. So if you are running with Inno you have to set both the Inno and MyIsam vars - one to make IPS work, the other so your DB works.

No, I have no idea why after telling everyone that InnoDB is the way to go for full text searching and so on why they are now pulling the MyIsam variable directly instead of accounting for both or letting us choose.

Also, it's possible on upgrading that the posts table gets reverted to MyIsam even if you had it set to InnoDB. Bug report submitted a few weeks back. That, of course, will cause problems as well...

Posted
Just now, RevengeFNF said:

Im using MariaDB 10.1, and i have Innodb setup to 3 letters and i changed MyISAM to also 3 letter, and i still can only search words with 4 letters minimum.

Did you rebuild your search index, and also run the support tool to clear the cache? If so and you are on 415, it should be working. I tested specifically on MariaDB as well.

Posted
2 minutes ago, Rhett said:

Did you rebuild your search index, and also run the support tool to clear the cache? If so and you are on 415, it should be working. I tested specifically on MariaDB as well.

Well, i rebuild search index yesterday. It was setup with innodb for 3 letters and myisam for 4 letter. Today i changed myisam also to 3 letters. But my search index is using innodb, not myisam.

I should rebuild search index again?

  • 10 months later...
Posted

Hi!

I just have some extra information to add to this. I just wanted to know how it really worked.

The permanent solution to this would be to change 'ft_min_word_len' in mysql.ini which IPS 4 manually reads to use for it's own kind of full text search. It is not a native mysql full text search. 'ft_min_word_len' is not in ini as default, and it's default is '4'. You will have to add it in the [mysqld] section.

If you don't have access to mysql.ini you can hack/override this function instead:
termAsWordsArray() in \forum\system\Content\Search\Query.php

Comment/delete the lines that checks for 'ft_min_word_len' in mysql.ini, and make sure the default stated further down is up to your needs. I my case the min default was 3 as needed :)

I am currently using 4.1.16.1

Posted
6 hours ago, Maya Andersen said:

The permanent solution to this would be to change 'ft_min_word_len' in mysql.ini

Exactly where is this "mysql.ini" located.  All Linux installations I've used that have mySQL installed, the mysql config file is my.cnf.

 

Posted
19 hours ago, Tracy Perry said:

Exactly where is this "mysql.ini" located.  All Linux installations I've used that have mySQL installed, the mysql config file is my.cnf.

 

Hi Tracy!

A good question. Here is MySql's answer:
http://dev.mysql.com/doc/refman/5.7/en/option-files.html

Basically it looks like there can be more possible locations on Windows.

In my Xampp install on windows the mysql_installservice.bat file creates a windows service where the location is set to the "mysql/bin/my.ini" location using the option "--defaults-file", which is one of the examples how to do it.

<3 Maya

Posted
1 hour ago, Maya Andersen said:

Basically it looks like there can be more possible locations on Windows

That was my point.. you didn't specify that you were referencing a Windows install (I was pretty sure you were as every Linux package uses my.cnf by default as I said).
That's why, when giving recommendations/suggestions, in many cases it helps to clarify what OS you are on/referring to when telling someone to look for a particular file somewhere.
A Linux admin would have spent forever looking for that file (but honestly, if they were using Linux, I'd hope most of them would know that mySQL uses my.cnf).

And as for Xampp - I won't comment other than to say "Don't use, won't use it".  If I'm going to set up an environment on a Windows box, I'm going to duplicate what I would be using in the real world - by running a VM and installing Linux of one flavor or another and duplicating my ENTIRE setup process. ;)

 

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...