<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -47,7 +47,8 @@ class NewsArticleVersion &lt; ActiveRecord::Base
 
   def to_xapian_doc
     XapianFu::XapianDoc.new(:id =&gt; id, :title =&gt; title, :text =&gt; text,
-                            :created_at =&gt; created_at.to_date)
+                            :news_article_id =&gt; news_article_id,
+                            :created_at =&gt; created_at.to_date, :version =&gt; version)
   end
 
   def text=(new_text)
@@ -56,22 +57,31 @@ class NewsArticleVersion &lt; ActiveRecord::Base
   end
 
   def self.xapian_search(query, options = { })
-    xapian_db_ro.ro.reopen
-    docs = xapian_db_ro.search(query, options)
+    xapian_db.ro.reopen
+    docs = xapian_db.search(query, options)
     docs.each_with_index { |d,i| docs[i] = find(d.id) }
     docs
   end
 
-  def self.xapian_db_ro
-    @xapian_db_ro ||= XapianFu::XapianDb.new(:dir =&gt; File.join(RAILS_ROOT, 'xapian/news_article_versions'),
-                                             :sortable =&gt; :created_at)
+  def self.xapian_db
+    if @xapian_db
+      @xapian_db
+    else
+      fields = {
+        :created_at =&gt; { :type =&gt; Date, :store =&gt; true },
+        :news_article_id =&gt; { :type =&gt; Fixnum, :store =&gt; true },
+        :version =&gt; Fixnum
+      }
+      @xapian_db = XapianFu::XapianDb.new(:dir =&gt; xapian_db_path,
+                                          :create =&gt; true, :fields =&gt; fields,
+                                          :index_positions =&gt; false)
+    end
   end
 
   private
 
-  def self.xapian_db
-    @xapian_db ||= XapianFu::XapianDb.new(:dir =&gt; File.join(RAILS_ROOT, 'xapian/news_article_versions'),
-                                          :create =&gt; true, :sortable =&gt; :created_at, :index_positions =&gt; false)
+  def self.xapian_db_path
+    File.join(RAILS_ROOT, 'xapian/news_article_versions')
   end
 
   def setup_text
@@ -80,7 +90,7 @@ class NewsArticleVersion &lt; ActiveRecord::Base
   end
 
   def self.xapian_rebuild(options = { })
-    options = { :batch_size =&gt; 1000 }.merge(options)
+    options = { :batch_size =&gt; 1000, :include =&gt; :news_article_version_text }.merge(options)
     logger.info(&quot;starting xapian_rebuild for NewsArticleVersion with options #{options.inspect}&quot;)
     find_in_batches(options) do |batch|
       xapian_batch_index(batch)</diff>
      <filename>app/models/news_article_version.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fd756de0a0fd8467c7870a8898bafbf5be858983</id>
    </parent>
  </parents>
  <author>
    <name>John Leach</name>
    <email>john@johnleach.co.uk</email>
  </author>
  <url>http://github.com/johnl/news-sniffer/commit/3cf82ad61e8681b78032c6980b5b4faaadc63119</url>
  <id>3cf82ad61e8681b78032c6980b5b4faaadc63119</id>
  <committed-date>2009-09-09T15:17:16-07:00</committed-date>
  <authored-date>2009-09-09T15:17:16-07:00</authored-date>
  <message>Support for xapian-fu 1.0.1</message>
  <tree>7905e8653ca93c9d0beac202ceb95e982534b32c</tree>
  <committer>
    <name>John Leach</name>
    <email>john@johnleach.co.uk</email>
  </committer>
</commit>
