* Code Zauker: your code, indexed
Code Zauker is a search engine for programming languages.
Code Zauker is based from ideas taken by old Google Code Search and uses Redis as storage engine.

For news and discussion: http://gioorgi.com/tag/code-zauker/

* NEWS 
** And an happy coding year! 2013
  Version 0.1.0 spot an auto-reindexing system, 3-gram size and a new command, czlist.
  CodeZauker will store a MD5 checksum for every file and reindex automatically changed files.
  There is a small API change: FileScanner>>load will no longer accept noReload because it will 
  automatically use md5 to undestand if a reindex is needed.
  Anyway, client code should relay on FileScanner>>reindex to force a reindex of a file.
  This feature is still beta but works pretty well.

  When a lot of reindexing is involved, performance can drop hard under 2 files per sec

  Version 0.1.0 spot also a new command, /czlist/ which simplify integration with unix tool-chain.
  czlist access directly to code zauker core to show only the filename 
  which could contains the searchstring.
  czlist is ideal for IDE integration
  


* INSTALL
To install Code Zauker,simply issue
#+BEGIN_SRC sh
  gem install code_zauker
#+END_SRC
You need also [[http://redis.io/][redis-2.4.6]] or better. 
For a sample redis configuration see the etc/ directory of the project

* Try it out
** To index all your files
The following command will index all the code file below /full_path_of_sources/ providing 
a feedback on standard output
#+BEGIN_SRC sh
 czindexer -v /full_path_of_sources/
#+END_SRC
If your redis server is on another machine, you can use the following command
#+BEGIN_SRC sh
 czindexer --redis-server myredisserver  -v /full_path_of_sources/
#+END_SRC
Also authentication over redis is supported:
#+BEGIN_SRC sh
 czindexer --redis-server password@rediserverpwp  -v /full_path_of_sources/
#+END_SRC


To search for the 'my_beautiful_method' try out:
#+BEGIN_SRC sh
 czsearch  my_beautiful_method
#+END_SRC

Looking case insensitive can be userful too....
#+BEGIN_SRC sh
 czsearch -i  'Select USER_id'
#+END_SRC

Tip:Take a look to czindex and czsearch commands help for full options list
** Web interface
There is a new shiny web interface based on sinatra. To try it out, fire
#+BEGIN_SRC sh
 ./bin/webgui
#+END_SRC
It is still beta, but it is *very* fast, thank to redis!


** Parallel execution
If you want to speed up indexing, you can use the mczindexer command.
For instance:
#+BEGIN_SRC sh
mczindexer eclipse-sources/
#+END_SRC
will fire at most 10 parallel czindexer.

** Simple stats
You can ask code zauker to print a nice stats on standard output.
Run
#+BEGIN_SRC sh
 ./bin/report.rb
#+END_SRC
and enjoy!



* MS-Windows Compatibility
Grab your windows redis server at
https://github.com/dmajkic/redis/downloads
Version 0.0.9 and 0.1.0 has been successful tested with Redis 2.4.5 32bit version
You will find a 
redis-win.conf example
to give you a fast-startup


* Release History
  | Version | Date        | Summary                                                                       |
  |---------+-------------+-------------------------------------------------------------------------------|
  |   0.1.0 |             | Added czlist command which supersedes czsearch.                               |
  |         |             | Czindex now spot a better auto redindexing feature                            |
  |         |             | Removed hiredis dependency for easier installation under ms-windows           |
  |   0.0.9 | 12 Oct 2012 | Removed case sensitive backend to improve space use. Er Zauker Compatibility. |
  |         |             | Tested on MSWin                                                               |
  |   0.0.8 | 04 Jun 2012 | Wildcard (*) search/better error handling of missed files/indexchecker        |
  |   0.0.7 | 13 May 2012 | Better documentation, mczindexer, new report command                          |
  |   0.0.6 | 04 May 2012 | New redis-server option. Better web search with results hilight               |
  |   0.0.5 | 09 Apr 2012 | Added Sinatra-based web search page, featuring bootrstrap css                 |
  |   0.0.4 | 12 Feb 2012 | PDF Searching                                                                 |
  |   0.0.3 | 03 Feb 2012 | Added Case insensitive search.UTF-8 trigram database                          |
  |   0.0.2 | 29 Jan 2012 | Removed dependency on unix find for czindexer.                                |
  |   0.0.1 | 26 Jan 2012 | First RubyGems Release (for testing purpose only)                             |

  
* DEVELOPING
For developing with Code Zauker you need bundler 1.0.21 or above
See devel.org file for more information

* KNOWN BUGS / LIMITATIONS
At the time of writing, indexing emacs-lisp file is a very slow task.