FULLTEXT search fails on "ac/dc"

Anyone have a clue why FULLTEXT search would fail on a term like “ac/dc”?

select id, title from table where match(title) against("ac/dc" in boolean mode)

I am aware the words with less than 4 characters are ignored, but this should work no?

fail?

was there an error message?

I meant it returns no rows, doesn’t find anything.

how many total rows in the table? and how many contain this string when you use LIKE to find them?

total rows about 8, 2 rows contain ac/dc.

Sorry, not in front of the other computer right now.

from da manual

[fulltext searching] works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results.
:slight_smile:

so I guess in proper English, this translates to something like “my table doesn’t have enough rows”. I now have 21 entries with the same result. I doubt that constitutes a “very small table”.

Furthermore, other fulltext searches work fine (searches for “school” or “school of rock”, etc), just not with ac/dc so I doubt that this is what’s causing it. Of course I could be wrong.

yes that would still constitute a very small table.

I believe the problem is the / which MAY be interpreted as you now searching on two two letter words “ac” and “dc” and those would be stop words because the minimum word length is four characters. I believe you can change that setting. I do think though this is why you run into the trouble.

Change a couple of rows to acdc without the / and search on that and I’ll bet the rows are returned.

yes, this was my same conclusion, but then how do I deal with terms that have a slash in them?

Because the same search using LIKE does work.

Did you try using single quotes around ‘ac/dc’ ?

Yes I did. Single, double, same thing. It’s really got me stumped!

I think what is happening is that FULLTEXT is dividing the term into 2 words because of the slash and of course it will ignore words of 3 characters or less. The question is, is there a way to tell it not to divide words when there is a slash present, it does the same thing for a hyphen.

Anyone have any clues as to why this is not working for fulltext search and how to circumvent it?

Any help would be appreciated.