]> git.cworth.org Git - sup/commitdiff
weird ferret workaround: stringify thread-by-subject queries
authorWilliam Morgan <w@adap.tv>
Mon, 17 Mar 2008 16:27:46 +0000 (09:27 -0700)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Mon, 17 Mar 2008 16:31:59 +0000 (09:31 -0700)
lib/sup/index.rb

index 7cd7db0f95103620998f260b442f3fe8d816000e..c8c5c26e1ec2372971323758023449a98c03c6c2 100644 (file)
@@ -254,6 +254,7 @@ EOS
     searched = {}
     num_queries = 0
 
+    pending = [m.id]
     if $config[:thread_by_subject] # do subject queries
       date_min = m.date - (SAME_SUBJECT_DATE_LIMIT * 12 * 3600)
       date_max = m.date + (SAME_SUBJECT_DATE_LIMIT * 12 * 3600)
@@ -268,10 +269,13 @@ EOS
 
       q = build_query :qobj => q
 
-      pending = @index.search(q).hits.map { |hit| @index[hit.doc][:message_id] }
-      Redwood::log "found #{pending.size} results for subject query #{q}"
-    else
-      pending = [m.id]
+      p1 = @index.search(q).hits.map { |hit| @index[hit.doc][:message_id] }
+      Redwood::log "found #{p1.size} results for subject query #{q}"
+
+      p2 = @index.search(q.to_s, :limit => :all).hits.map { |hit| @index[hit.doc][:message_id] }
+      Redwood::log "found #{p2.size} results in string form"
+
+      pending = (pending + p1 + p2).uniq
     end
 
     until pending.empty? || (opts[:limit] && messages.size >= opts[:limit])