After struggling with my limited Perl-verse and technical knowledge of search engines, I've finally compromised to provide the following "basic" suite:
0. This search function looks at the topic (there's only one per thread) and the messages themselves. This excludes user name, E-mail, date/time, IP address, and passwords. :)
1. By default, all words entered (separate by space only, not commas) are required words, and matches only whole words, case-insensitive. AND keyword is not needed and will be discarded if found.
2. OR keyword in between two words: this means that posts containing either word will be matched. (e.g. dogs OR canines) It can be used to link more than 2 words. (e.g. Odin OR Harbard OR Grey OR God)
3. " " double quotes: words wrapped around by it will be searched as exact sentences. If you put a minus "-" in front of the quotes, it searches anything not containing the exact string. Note that exact sentences cannot be combined with OR, and the "-" mark does not act on anything other than quoted sentences. (I could do it, but I haven't found an elegant way yet...)
4. Disappointed? Well, tell you what - this Search function will be extremely powerful if you know Perl yourself. Since each word (except the exact match ones) is subjected to interpreted pattern match by Perl, any wildcards will be picked up and evaluated by Perl, which is just about the most powerful pattern-match language! This means that (.*) searches any length of any characters, \w matches any single alphanumeric character, and so on... This also means that, if you weren't going to use these wildcards, you need to wrap them with double quotes. When in doubt, quote them. A list of these wildcards are:
\ . ^ $ * + ? { } [ ] ( ) |
I sincerely hope there isn't any way to compromise this pattern match mechanism... If there is, please kindly E-mail me and I'll quotemeta everything.