[Mediawiki-l] Article words absent from MySQL full-text index

Daniel Barrett danb at VistaPrint.com
Tue Oct 28 19:47:51 UTC 2008


(This is not a question about MySQL "stop words...")

I have found some weird search behavior in our MediaWiki site (1.13.2) and reproduced it on two other sites.  There is a word on one article that is not searchable.  When I check the MySQL full text index table, the word is not present.  Any clues where I should look next to figure this out? MySQL version = 5.0.45.

In our case the word is "vbr_drawstats".  It appears in 4 articles on our wiki, but search finds only 3 of the articles.  When I check the index directly by SQL:

SELECT  si_title FROM `vpw_searchindex`
WHERE MATCH(si_text) AGAINST('+vbr_drawstats' IN BOOLEAN MODE)

I get 3 hits instead of 4.

Let's call the missing fourth article "badsearch".  Here are the strange facts:

1.      I can search for other words on "badsearch", so the article IS present in the index.
2.      If I copy the text of "badsearch" to another article, the same problem occurs.
3.      The namespace containing "badsearch" IS being searched.
4.      If I modify the "badsearch" article, say, by placing "vbr_drawstats" at the top of the article text, then badsearch DOES get found by search.
5.      If I remove a bunch of lines from the end of badsearch (not containing "vbr_drawstats"), then badsearch DOES get found by searching for vbr_drawstats.
6.      If I turn on SQL logging in MediaWiki, and see the query that gets run for search, and run it directly in MySQL, I get the same results.  So MySQL is returning the wrong info.  (But is MediaWiki causing this to happen in any way?)

My instinct is this is a bug in MySQL, but I suppose there is a small chance MediaWiki is doing something weird.  Anyone have any ideas what to check next?

Thanks,
DanB



More information about the MediaWiki-l mailing list