2007-08-29 
    *  DDC could sort by left or right contexts using #left or #right operators.
	To enable these operators one should first create indices of bigrams
	by specifying in the options file the following record:

		Bigrams  <IndexName> <MaxBigramsWindowSize> <Border>

	where 
      <IndexName> is an index name (field "Indices"), 
      <MaxBigramsWindowSize> is the size of bigram window (could be 2,3,4,5),  
      <Border>  is the short name of a break collection (field HitBorder) 
    that restricts any bigram, i.e. a break of <Border> could not be inside 
    a bigram. 
		Here is an example:

		Indices  [Token w normal]
		HitBorders [s:sentence]
		Bigrams  Token 2 s

	This means that DDC should create bigrams index based upon "Token index" 
    (the primary index of words). Bigrams could be only adjacent 
    words  (MaxBigramsWindowSize = 2) and  they could not trespass 
    a sentence border.
    To examine the built bigrams one could  run the following command:

		ConcordStatis <CorpusName> All <IndexName> dump-bigrams

	Note, that ConcordUnion for indices with bigrams is not yet implemented.
	Note also that for example indexing with token bigrams (window size = 2) 
	takes on my computer 30% more time and twice as much disk space.

	
	
	
2007-03-03
	* We changed all heterogeneous predicate lower_bound to my own implementation cause 
	Microsoft C does not supprot  heterogeneous predicate lower_bounds.
	* We fixed the bug about Limit values which process ConcordDaemon. 
	If these values  were out of range then ConcordDaemon got killed.

2006-04-12
	* DDC is enabled to show word interpretations in output hits under 
	Free_Index format. See  descriptions of options IndicesToShow 
	and InterpDelimiter in DDCReadme.pdf

2006-24-03
	* Thanks to Radovan Garabik for implementation of class RML_RE.
	Class RML_RE uses  PCRE libraries via pcrecpp interface. 
	In the previous versions PCRE was simply included in DDC sources. Now the user
	has to install PCRE before compilation of DDC (see DDC_UNIX.txt for detail).  
	

2005-12-22
	* NEAR rank is now normalized by the number of  query items.
	

2005-11
	* A bug in query parsing is fixed (thank Kai Zimmer):
	multiple or middle occurrences of #within operators with text breaks types
	were wrongly processed, for example such query issued a parse error:
		Mutter  #within file #less_by_rank

	* A bug in the screen outputting of the ranks parameters is fixed (thank Kai Zimmer).
	* A bug in calculating of position rank is fixed (thank Kai Zimmer).
	* A new query operator #debug_rank is introduced. If it is specified 
	 the  hit string is prefixed with the detailed rank information (only DDC_ResultText and DDC_ResultHTML)
	
		
2005-11-16
	* A bug in creating chunk index is fixed (thank Matej Durco)
	* A bug in creating the last index item is fixed 

2005-10-27
	Version 1.7 is released

	* The input documents can be now indexed by different text areas (titles, body).
	The user could search inside text areas using #within operator,  without 
	this operator DDC searches in all text areas. In the previous versions 
	one should declare "body" as a hit border in the options file, 
	in v. 1.7 one should convert body declaration to a text area declaration,
	for example:
	In v. 1.6:
		Bibl string 0 body  /TEI.2/text/body

	In v. 1.7:
		TextArea body /TEI.2/text/body
	(See more in DDCReadme.pdf )

	* New order operators  are introduced: #less_by_rank and  
	#greater_by_rank. These operators order the output hit set by an
	additive combination of the tf.idf weighting  and the outside page rank.  DDC 
	reads the page rank from the input xml (See more in DDCReadme.pdf ).
	Notice that using these order operators could gear down DDC up to 40%.
	(See more in DDCReadme.pdf )

	* A new optimization of the query cache accelerates queries with regular 
	expressions up to 20%.
	
	* A bug in creating text breaks for Free_Index is fixed (Thanks to Matej Durco)
	If there is no text breaks in a document, then  DDC should create 
	at least one text break per document.
	
	

2005-08-27  
	* A bug in creating morphological index is fixed. The function std::unique
	was wrongly used in CIndexSetForLoadingStage::SortInputAndMemoryIndices.

2005-07-
	Version 1.6 is released
	* Page breaks are now supported in Free_Index format.
	* The text output format was changed: the page number is now output  as an
	  independent field (the second position), in the previous versions it was concatenated
	  with the first field. If page number is unknown, then DDC prints -1.
	* A bug in finding email and web addresses is fixed (tokenization).
	* LeftKwicContextSize and RightKwicContextSize optional parameters are 
	 introduced that control the size of context for kwic-lines of snippets (see DDCReadme.pdf)
	* NumberOfKwicLinesInSnippets optional parameter is introduced that determines 
	  the number of kwic lines in file snippets. 
	* The algorithm of building file snippets is fully revised (proposed by Alexander Geyken).
	In this version, DDC tries to show kwic-lines with different query atoms, while 
	in previous versions DDC chose kwic-lines at random. For example, for 
	query 'A&B' DDC tries now to find at least one line with 'A' and one line with 'B'.
	* Fixed bug (thanks to Kai Zimmer), that DDC crushed with segfaults if the corpus is 
	too large (more than 2^29 running tokens). Now DDC reports an error 
	in this situation and exits.


2005-05-11
	A bug is fixed in parsing query operators (Thank to Kai Zimmer):
	DDC ignored all query operators after #cntxt operator, so DDC presupposed
	that #cntxt operator should be the last in the query. Now the restriction 
	is lifted.
	
2005-03-10
	Version 1.5 is released
	* A new option that is called "DisableDefaultQueryLexicalExpansion",
	is introduced, which prohibits the default lexical expansion for 
	each word in the input query.

	* HtmlHighlighting and TextHighlighting option fields are introduced, 
	which determine the highlighting tags (text delimeters) for 
	the found words in a hit.

	* A new option that is called "ResumeOnIndexErrors",
	is introduced, which tells DDC to ignore  source xml-files with 
	a wrong structure while indexing the input corpus. 

	* A free bibliographical field can be now integer or string.  
	One can use ordering operators #less_by or #greater_by in order to 
	sort by an integer bibliographical field. Also it is possible to use 
	#has_field operator for integer fields as well as for string ones.

	* The protocol between DDC server and client applications 
	(ddc_xml and "search") was changed. A new search result information is 
	included into a  DDC server response  (the number of relevant corpus files).


	* A bug with opening sockets by ConcordDaemon is fixed (Thanks to  Kai Zimmer)
	If ConcordDaemon was stopped, then one should wait a while till
	ports that were used by ConcordDaemon, become free.  It results in 
	an error if one tries to restart quickly ConcordDaemon (ConcordDaemon 
	could not bind the socket).  Now it is fixed by setting 
		setsockopt( ... , SOL_SOCKET, SO_REUSEADDR ...)

2004-10-01  A.Sokirko
	Version 1.4 is released
 	User-defined bibliographical fields are introduced (see field "Bibl" in the options file).
	#has_field query operator is  introduced.
	Bug fix about an xml file with empty body.  
	

2004-10-01  A.Sokirko
	Version 1.3 is released

2004-9-01  A.Sokirko
	DDC now uses TinyXml library.

2004-05-01  A.Sokirko
	DDC was switched from GRETA package to PCRE package, since  GRETA package
is too capricious during compiling.

2004-04-06  A.Sokirko
	A memory leak was fixed while handling bibliography file.

2004-03-26  A.Sokirko
  A special function "CConcIndexator::CreateMorphIndex"  was introduced,
which  creates morphological index, without reindxing the whole corpus. 
In order to invoke this function one should run 
	ConcordIndex <corpus_file>  --only-reindex-morph

2004-03-06  A.Sokirko
	DDC was swithced to the new morphology interface, which is built on FSM. 
The special buffer, which contains all processed words and their morph.
interpretations, was disposed since morphology is now faster than this 
buffer.


