anchor.diff:  		(get-field "link")
   		(get-field "id"))))))
   
  -
  -;; -- Similar posts (experimental)
  -
  -(defmethod similar-posts (id &optional (field "text"))
  -  (let* ((doc (montezuma:get-document *index* (montezuma:make-term "id" id)))
  -	 (query (document-similarity-query field doc)))
  -    (search-posts query)))
  -
  -(defun tokens-to-similarity-query (field tokens)
  -  (let ((bq (make-instance 'montezuma:boolean-query)))
  -    (dolist (token tokens)
  -      (montezuma:add-query
  -       bq
  -       (make-instance 'montezuma:term-query
  -		      :term (montezuma:make-term field
  -						 (montezuma:token-image token)))
  -       :should-occur))
  -    bq))
  -
  -(defun document-similarity-query (field document)
  -  (let* ((field-value (montezuma:field-data (montezuma:document-field document field)))
  -	 (tokens (montezuma:all-tokens (montezuma:analyzer *index*)
  -				       field 
  -				       field-value)))
  -    (tokens-to-similarity-query field tokens)))
  -	
   
   ;; -- Misc.
   
  
positive.code:       (let ((post (cl:read in)))
  	  ;; Add an :md5 property (taken from the filename,
  	  ;; e.g. "a4cadb7008415fe24a6b0585523900dd.sexp") just to keep track of
  	  ;; it.  I don't know if it's possible for the MD5 to differ from the
  	  ;; :id in the post.
  	(setf post (list* :md5 (pathname-name file) (cdr post)))
  	post))))
  
  
negative.code:     (declare (ignore second minute hour))
      (format nil "~D-~2,'0D-~2,'0D" year month date)))
  
  
  (defun timestamp-string (universal-time)
    "Turns a universal time into a string like \"2006-06-06 23:59:59\"."
    (multiple-value-bind (second minute hour date month year)
        (decode-universal-time universal-time)
      (format nil "~D-~2,'0D-~2,'0D ~2,'0D:~2,'0D:~2,'0D"
  	    year month date hour minute second)))
  