> From the manual
> > MySQL uses a very simple parser to split text into words. A word is any
> > sequence of characters consisting of letters, digits, ', or _. Some
> > words are ignored in full-text searches:
> > Any word that is too short is ignored...
> . and - are non-word characters, so they are treated as word separators.
> Hence, your query is asking for documents containing 'BT', '1034', and
> The first and last are too short, so they are dropped, resulting in a
> search for just '1034'. Documents are indexed similarly, so each of the
> examples you give are indexed as '1034' only; the parts before and after
> are too short and not indexed. So you get the results you indicate.
> When you add the quotes, results which match '1034' are then filtered for
> matches containing the exact text in quotes, "BT-1034.06" in this case,
> yielding the result you want.
Thanks for the explanation.
BT-1034.02 is one of many primary keys. I suppose
Fulltext is a natural language search and not the
tool to use when searching for specific primary keys.
I could regex user search input and if I see anything
between a '-' or '.' that's less than 4 chars I could ""
the whole string(?)
Wonder what google or yahoo do?
Is there a way around this? Why is it the default?
> leegold wrote:
> > If I search on:
> > BT-1034.06
> > I get returned:
> > BT-1034.02
> > BT-1034.03
> > BT-1034.05
> > ...
> > BT-1034.11
> > If I put in "" ie. "BT-1034.06"
> > I only get BT-1034.06 returned.
> > The BT- part seems irrelevant.
> > But I don't understand the results.
> > Why so many returned? Seems like 1034.06
> > w/out the "" is unique enough. Is '.' a special
> > character and the cause? If no simple answer
> > I'll show you my code if necessary. Thanks for the help.
> > 4.1.3a-beta for win32
> > Lee G.