I have read the forums regarding the limitations of searches in Silverstripe (whereby the engine will only search the title and content fields) and like others, found the search rather disappointing.
Is it possible to create a page type with all the relevant fields you need, and the content editor the CMS user sees is actually a different field (let's call it rawcontent for example), and when it is saved, it copies all the fields plus the rawcontent into the $Content section and saves? Will that work?
That way a search will still index all the data for that record, and the template would just be changed to display $rawcontent when the page is viewed.
If this is possible, what is the "beforesave" type method? I find the API very difficult to follow compared to other languages and prefer code snippets!
Does the code above mean it's not going to index the meta tags anymore unless I re-add them to the $indexes array? (Is this because of indexing changes in the version you used to write the code or something? I am using the latest version 2.3.1).