logo for corzoogle; fast realtime personal search engine for your home or website, from corz.org

about..

What is corzoogle?

corzoogle is a fast, real-time, self-contained, one-page php search engine that can find text anywhere inside a folder, or tree of folders by simply dropping it in, and loading it in a web browser; something like..

  http://mysite/corzoogle.php

corzoogle provides deep, secure, realtime  full-text searching of files, be they on your own computer, or your web site. File changes are immediately  available in the search results. Unlike most other search systems corzoogle doesn't "index" content on a daily/weekly/manual basis, but always searches in realtime, live. Your results are never out of date.

corzoogle is free for non-profit use.
 

What's special about corzoogle?

Lots of things. Firstly, as I mentioned, corzoogle is live; working in realtime. There's no index, which means no indexing, crawling or spidering, and definitely no database. Everything happens NOW, the instant the user demands it.

corzoogle is also very fast. Expect to get results back in under a second, even when searching through thousands  of documents. You can try it out here at corz.org; click the search bar at the top of all the pages, and go find something!

One thing (or rather, lots and lots and lots of things) that makes corzoogle stand out is its configurability; here's some of the things you have control over, with corzoogle..
* drop corzoogle in your favourite text editor and see for yourself!
 

What do I need to run corzoogle?

A web server running php.

Most modern operating systems have a functioning web server built-in. Apache (the most popular, and arguably the best web server in the world) is ideal, and installed as standard on Mac OS X, almost all Linux/bsd/UNIX/ systems, and most serious professional internet web servers. If you pay for web hosting, this is probably what you have. Apache is also available for Windows. You'll need php4 or greater to run corzoogle.

 

And I can run this at home, yeah?

Sure!

corzoogle was originally designed to search some documentation; the php manual in fact, which is almost four thousand files in one folder, and a bugger to navigate, too. I seemed to be spending as much time finding information as using it. corzoogle fixed that.

Then I threw a copy into my "dev archive"; years of collected developer information, all suddenly so very available. Since then it's been cloned and borrowed and now there's almost nowhere on my network that isn't covered by corzoogle.

If you ever find yourself searching for text in documents, or archives of documents, research, anything like that, or if you run a web site without a decent search facility you are probably losing many visitors, and corzoogle could potentially be of great value to you; so feel free to check it out, for free.

 

Got no web server?

If you haven't yet realized the power of your own personal web server, or don't have Apache installed on your system, keep an eye on this part of the site; a growing collection of tools and how-to's, articles related to that very subject!
 

Version Information (aka. 'itstory')

This should be fairly up-to-date (it's dynamically included from the beta source folder), and will keep you informed if you are messing with the latest beta..
 
    #####    ###     ##  ### ########              ###     ##  ###    ###TM 
  #######  #######   ####### ########            #######   #######  ####### 
 ###      ###   ###  ###         ###            ###   ###  ###     ###   ## 
 ##       ##     ##  ##         ###             ##     ##  ##      ##    ## 
 ###      ###   ###  ##       ###               ###   ###  ##      ###   ## 
  #######  #######   ##      ########    ###     #######   ##       ####### 
    #####    ###     ##      ########    ###       ###     ##          #### 
                                                                        ### 
                                                                     #####   


Welcome to corzoogle!
corz.org 2004->

itstory.. aka 'version history'.. aka 'changes'..
last updated: MONDAY Oct 29, 2007


v0.9.5b [current live testing beta]

    *    improved URL encoding in results.

    *    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!


v0.9.4b

    *    improvements to the mailer functions, should be more robust under 
        various server setups

    *    fixed stray </span> tag I introduced in the last version.

v0.9.3b

    *    minor stylistic improvements

    *    improved mail notification

    *    fixes in distributed version (removed certain corz.org localizations)


v0.9.2b

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


v0.9.1b

    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.

    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. 
    
    tip:  use half the character value as an em value for the css class'
          width, so for 80 characters, we might use..

    .recent-hits {
        width: 40em;
        float: right;
        text-align: right;
        font-size: small;
        }

    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.
    
v0.9b

    corzoogle now outputs 100% Strict XHTML compliant web code, in nice <div>s
    with css controlling all the positional and style elements. Have fun!


v0.8.4.2b

    fixed occasional issue with snippets being *much* longer 
    than they should have been. This version hasn't been officially released as it 
    is in a state of flux, though runs happily here at corz.org and can be had by 
    a simple email.


v0.8.4b

    started integrating the general site xhtml upgrade.


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: