Welcome to corzoogle and corzoogle pro!

(c) 2003->tomorrow! ~ cor + corz.org ;o)

Thanks to everyone who gave feedback on the 0.9 betas!

Itstory..

1.0.2
corzoogle will now only add searches to the "recent hits" list if they
returned results on your site. People searching for, well, you can
imagine, will not create any content on your site containing that text.

SEO spammers, in particular, like to run searches for their domain on
other, more popular domains.

+  corzoogle will perform checks to ensure that there is never duplicate
entries in the recent hits list. This is especially important if you run
adsense ads on your site (yup, they run searches!).

Recent hits will now also follow any "short" link you may have corzoogle
running under, e.g. /search?q=previous

+  Added "whole word" matching. Normally, if you searched for "refer",
you would get results back for "preference", "referrer", and so on. With
this enabled, you wil only get results back for pages containing the word
"refer".

+  Added user options.

The first of these is.. suprprise surprise.. Whole word matching. The
user can check a box to enable/disable this behaviour (if the web master
has the whole word matching option enabled).

1.0.1  [current release] [2013-12]

+   Improved document title - it now states the version number and current
search query.

+   The recent hits is now returned as a <nav>, which should weight its
results better with spiders.

v1.0

Enter corzoogle pro..

+   corzoogle now outputs beautiful, 100% compliant HTML5 web code with CSS
controlling all the positional and style elements.

Too many stylistic improvements to note. En-Joy!

+   Option to include different style sheet for short pages (corzoogle will
automatically switch when it returns less that three results).

+   Improved pop-up titles.

+	Improved URL encoding in results.

+	Improvements to the mailer functions, it is more robust under various
server setups.

+	Improved mail notification.

+   corzoogle now reads inside gzipped (.gz) files (by request).

+   Configurable mailer Line-Breaks, more a work-around for current Postfix,
(maintainer) than an actual feature.

+   You can now configure the location of the hits file. If you cannot
create a writable file in corzoogle's directory, perhaps you can use the
system temp directory, or something like that.

+   You can now add a notice to corzoogle, which will display under the main
search form. You can use it to tell your users anything at all.

+   Improved the recent hits stylings, with its own css class, and fully-
configurable character widths, you can put it anywhere on the page, and
do anything with it. I also improved its arithmetic, and it should now
remain within whatever limit you have set, e.g. 80 characters.

+   corzoogle will now perform intelligent transformation of any hits from
your corzblog installation. It can also create "flat links", if you use
and prefer that.

+   You can now have a list of bot agents that will *not* trigger a
notification email on searching your site.

+   File existence checks for included code (e.g. footer)

~   Added  rel="nofollow" to the recent searches links - Google has a
million of my search pages stored!

I note it because some may want to remove this, make it seem (at Google,
et al) that you have thousands of extra pages!

*	Fixed entity encoding in result snippets, even really bad HTML pages
should produce validating snippets. You still need to go fix your dodgy
pages, though!

*	fixed potential php notices for missing bot agents file (so the mailer
knows who *not* to notify you about).

*   Many, many minor undocumented fixes and improvements.

v0.8.4

End of the line for corzoogle FREE!

fixed occasional issue with snippets being *much* longer than they should
have been.

minor xhtml integration

v0.8rc3 [current release]

a few minor surface changes. everything is nice and stable.

v0.8rc2

fixed the bug with the search between tags. I really don't
know how that > got deleted! but it was a while ago! certain documents with
plain old <body> tags were being ignored in the search results. this only
applied to case-sensitive search-between tags, the default setting.

results snippets will now always begin at proper word boundries.

corzoogle will now automatically select the query terms in the input box, so
you can begin another search immediately, if you need to, by simply typing.
a small but significant improvement.

fixed the form focus error some browsers gave by basically just removing the
second form altogether, it just caused problmes anyhow.

v0.7.5b6 - v0.8rc1

minor changes, too busy to document!

v0.7.5b5

altered slightly the way corzoogle strips undesirable characters from the
input query. instead of replacing them with a space, they are simply
removed. a search for need w[[ords would search for need+words, previously
we would have got results for need+ords, the "w" having been removed as a
single letter.

added "extension mangling"..

Let's say you have a php site, and you keep your content in files ending
.htm, but if they are accessed directly, you redirect (with htaccess) to the
php container page. now you can have corzoogle alter the extension for you,
so the link goes directly to the php file. a hit for "darkstat.htm" would
link directly to "darkstat.php"

another use for mangling is .comment files. rather than the raw comment
file, you want the user to load the page it is attached to. so a hit for
"darkstat.php.comment" will present a link directly to
"darkstat.php#comments". the "real" filename, as always, is available by
hovering the mouse over the title.

this feature will be disabled by default, to enable, simply uncomment
(remove the "//" from in front of) the line beginning..

//$mangle = array(...

put the ".. " back in the end of snippet pieces in multiple query searches,
no more weird words in the snippets.

added a preference for the length of the "latest hits" links. the default is
enough hits to fill 81 chracters, but you can change that now.

removed some limitations of the search_between feature. will be more
accurate when using mixed start and end tags. if your end tag doesn't exist,
but the start tag did, corzoogle scans right to the end of the document. you
could even enter a bogus tag to have corzoogle always do that.

v0.7.5b4

added a preference for "embedding", for folks that want to run corzoogle
from inside another page. corzoogle will return the results in the same
space.

added some notes about the $search_between preference, and how it relates to
$search_in_tags.

added multiple corzblog searching. previously we were limited to a single
blog installation. you no longer need to specify this, corzoogle will return
correct results for any number of blog installations automatically. I
spotted this limitation after I started my devblog. if you use a name other
than "arc" for your corzblog archives, this functionality will break, though
you could edit in whatever name you do use. (why would anyone want to change
that?)

v0.7.5b3

fixed a bug I introduced in 0.7.5b1, where certain queries, matching words
right at the end of the text could produce unexpected results, usually
putting the entire page into the preview.

fixed a minor bug where certain documents could potentially be scored twice
for their filename.

added facility to set initial scoring weight in a multiple-query term.

added switch to force corzoogle to only search documents containing your
chosen $search_between tags, particularly for folks that use custom
$search_between tags.

v0.7.5b2

added "notify" facility for searches. you can be emailed every time someone
searches your site! you might want to put a filter on that!

this facility is disabled by default, and completely untested; please report
back any interesting findings.

$search_between tags can now be case-insensitive, if you need that.

v0.7.5b1

small performance improvements when searching for queries
with -not words

"search between" tags can be case-sensitive (default) or case-insensitive,
the latter is marginally slower, but potentially useful.

v0.7.4

added (ugly) highlights to "exact" word matches. they are disabled by
default (they were sort of in there already, some one wanted them working)
This looks like someone drew a marker pen through all the exact hits *eew*

added a switch for searching inside html tags. I'll set this to false, which
produces neater reults. if you are using coroogle to "grep" your site for
editing, or searching web-development technical documentation, or such-like,
you'll likely want to set this to true.

preview snippets can now be presented with the query terms in context, in
other words, the query term appears some way into the text, and not right at
the start of the snippet. aids comprehension. of course, how far in the term
appears, is configurable in the prefs.

corzoogle now attempts to create the "recent hits" file if it's not there,
which it did originally (dunno how that got switched off). There's still a
message if this wasn't possible (likely).

fixed a wee bug where html tags were being passed to the "past-hits" and
users could create interesting html structures at the foot of results pages.

added a few "googies" to the distribution; customised Apache manual index
page with built-in corzoogle search, is one.

v0.7.3.6

added < and > to the removed characters. You won't get
unexpected html structures in the results now. Searching for "<select name",
for instance, would create a nice select option. Amazingly, corzoogle still
returned all the results just fine!

v0.7.3.5

fixed a missing "" double-quote on the inline image's
url tag. oops. must have been in a hurry packaging this one.

added a preference for this now. you can specify an image location, or use
'embedded'. the choice is yours. that's right; if you hadn't noticed, the
image is contained within the script itself. (scroll down) this is highly
cool, yes, but please do read the notes about that inside corzoogle,
especially if you are running corzoogle on a 'live' website.

a few other minor gui thingies.

v0.7.3

fixed trailing slashes problem on search terms. this also
fixes the stop-words weirdness. "that's", will be removed now, as expected.

fixed a bug where if you had set corzoogle to score for all titles (not the
default), it was grabbing the document titles twice. oops. fixed a few other
minor bugs.

if a document has no title, and the filename has become the title in its
place, we now remove the extension before scoring. if you have
score_all_titles set to true, a search for php will *not* now return every
php file in the zone! this applies to regular file searches, and also the
display titles of the results. you still get the file extension if you hover
the mouse over.

v0.7.2

a couple of speed optimisations. Aye, just when I thought I had every
last ounce.

Fixed the search limit so that it will definitely stop at whatever you set,
regardless of the number of hits from one folder.

removed a potential bug where certain incredibly long single-term gibberish
words could cause an error. you should see the gramotki with all my test
phrases on it! I think the one that revealed the potential error was
http://corz.org/corzoogle.php?q=men+-pipe+-0g
+-645987.,%3E%3C%3E%3C8+/.,,.+8(*^gf
//././%3E\.\,;+%60~~876+]+][][+3498*&amp;(^ except without the spaces ;o)

v0.7.1

discovered the error_reporting (E_ALL) php setting, and so cleaned up a heap
of undefined variables and suchlikes. (and here was me just luvvin this not
having to declare variables "feature") these are only "warning" level errors
which most of us would never see, but still, ya know, they were there.

I think I got them all, but search conditions are a factor. I'll scan
through again, but if you come across any yourself, do let me know. some are
almost unnavoidable, and many just create checking code *sigh*, anyway,
error reporting should always be off on production servers.

you can now alter the hot-link message. I noticed a couple of weird (weird
as in unintelligible strange writing, their contant may have been perfectly
sedate) foreign sites using corzoogle and I thought maybe "hot-link my
butt-stink" would be less funny for them. it's in the domain section at the
foot of the prefs, right under where you can *allow* hot-linking (crazy
person).

v0.7
release

v1.7b

sooo many changes and improvements I'll write this up when I get a
chance, probably. just en-joy the features!

v1.6b

Added user switches for a couple of things, you can now switch snippets
on and off, description snippets on and off. You can have either, both, or
none, whatever you like.

Added more meta description CaSe checks.

v1.5b

added facility to NOT search for terms, as in boolean NOT, for
instance..

system secure -FineCrypto -pgp

would search for pages containing both "system" and "secure" but NOT return
pages any containing the words "FineCrypto" or "pgp"

it's case-insensitive, so you can do -finecrypto or -FINEcrypto, or
whatever, and it skips that file just the same.

while "keeping everything fast" is up there with "maintaining simplicity"
and "ease of use", you can add as many boolean NOT's as you like to the
query string, with a near-zero performance hit.

added ability to only search between certain tags..

the default is to search all content between the <html></html> tags but you
can configure this behavior, perhaps using the <body> </body> tags, or some
other tag of your choosing. you could even get right down and create
<search&gt<endsearch&gt tags, it's your call.

duplicate search terms are now removed

v1.4b

added filename searching capability

If the user inputs a word with a dot '.' in it, we assume it to be a
filename and corzoogle will, as well as its usual query string search,
perform an additional file name check, presenting its findings at the end of
the results page.

this consequently improved some internal logic, previously, dots '.' would
have been filtered from the input terms, but now we can find *references* to
real file names, linked pages, within documents, which seems a more sensible
approach.

only the first found file.name is actioned, further filenames are
incorporated into the search query as regular search terms.

v1.3b

added some user data checks

(NEVER trust user data), filtering out some undesirables, bizarre
punctuation, that sort of thing.

improved scoring for titles. we score seperately for exact matches and
simple term matches.

v1.1b

enlarged many of the comments, which are a tad cryptic in places,
hopefully of use to some lernerschripter.

improved the readability of a few variables names, stuff I'd put together
quickly, as often happens on chaotic days.

set limit on possible score achievable by containing individual search
terms, and also score for the different cAsE possibilities, ie.. mac MAC Mac

added scoring for document «title»

before.. well, it just sorta started with a <form> and went from there.. I
have to admit, I didn't really start keeping proper notes until around
version a1.1

reason was, I was was developing three seperate systems independently, and
to be quite honest it would have been too much work. by the time I finally
settled on this present system, it was aleady fairly mature. see my blog if
you need more details.

die (); // :debug: