Hi, I'm having some problems getting the standard search engine indexer to work as I'd expect. The result of the problem I'm having is that when you search for a specific word that I know appears on 8 pages in the site - only two search results are returned. All pages are made of HTML modules - nothing clever.
I've cleared out the search tables: SearchItemWord, SearchItemWordPosition, SearchWord, re-indexed the site through the admin, tested a search: same problem.
Looking at the database, there are only two links between the word and search items. e.g. the following query produces 2 results (same as the search results, of course):
SELECT *
FROM SearchItemWord
JOIN SearchWord ON SearchItemWord.SearchWordsID = SearchWord.SearchWordsID
WHERE SearchWord.Word LIKE '%abcd%'
However, the following query returns 8 results:
SELECT *
FROM SearchItem
WHERE
(
( Description LIKE '%abcd%' )
OR
( Title LIKE '%abcd%' )
)
If in the above query I limit it to just the title, 5 results are still returned (3 titles actually start with the word). I've looked through the SearchItem records and all contain the word in the Description field.
So, what's going wrong here? Is this a bug, or have I done something wrong? Any help would be appreciated. It looks like the indexing process hasn't fully completed, or there is some faulty string tokenizing code being used somewhere in the indexer.
Thanks in advance,
- Andy.