Short of full header indexing, wouldn't a better way to achieve this be to store only the "to" header as "XTO", the "cc" header "XCC", and the "bcc" header as "XBCC" and use Xapian's multi-prefix support to map the "to:" query prefix to "XTO", "XCC", and "XBCC"?  That way you're not storing twice as many copies of  every address.<br>
<br><div class="gmail_quote">On Wed, Dec 1, 2010 at 3:33 PM, Joel Borggrén-Franck <span dir="ltr"><<a href="mailto:joel.borggren.franck@gmail.com">joel.borggren.franck@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
From: Joel Borggrén-Franck <<a href="mailto:jbf@codehouse.se">jbf@codehouse.se</a>><br>
<br>
Add headers cc: bcc: and to: to index. Real header to: is searched as<br>
"exactto:foo@bar.baz" and search term "to:" is kept as a union of cc:,<br>
bcc: and to: for backward compatibility. Use search term "cc:" resp.<br>
"bcc:" to search those headers respectively.<br>
---<br>
 lib/database.cc |   11 +++++++----<br>
 lib/index.cc    |    9 +++++++++<br>
 2 files changed, 16 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/lib/database.cc b/lib/database.cc<br>
index 7a00917..68910f3 100644<br>
--- a/lib/database.cc<br>
+++ b/lib/database.cc<br>
@@ -88,9 +88,9 @@ typedef struct {<br>
  *     MESSAGE_ID:     The unique ID of the mail mess (see "id" above)<br>
  *<br>
  * In addition, terms from the content of the message are added with<br>
- * "from", "to", "attachment", and "subject" prefixes for use by the<br>
- * user in searching. But the database doesn't really care itself<br>
- * about any of these.<br>
+ * "from", "to", "exactto", "cc", "bbc", "attachment" and "subject"<br>
+ * prefixes for use by the user in searching. But the database doesn't<br>
+ * really care itself about any of these.<br>
  *<br>
  * The data portion of a mail document is empty.<br>
  *<br>
@@ -204,7 +204,10 @@ static prefix_t PROBABILISTIC_PREFIX[]= {<br>
     { "from",                  "XFROM" },<br>
     { "to",                    "XTO" },<br>
     { "attachment",            "XATTACHMENT" },<br>
-    { "subject",               "XSUBJECT"}<br>
+    { "subject",               "XSUBJECT"},<br>
+    { "exactto",                "XEXACTTO"},<br>
+    { "cc",                     "XCC"},<br>
+    { "bcc",                    "XBCC"},<br>
 };<br>
<br>
 int<br>
diff --git a/lib/index.cc b/lib/index.cc<br>
index 00478f8..d59c255 100644<br>
--- a/lib/index.cc<br>
+++ b/lib/index.cc<br>
@@ -455,6 +455,15 @@ _notmuch_message_index_file (notmuch_message_t *message,<br>
<br>
     _index_address_list (message, "from", addresses);<br>
<br>
+    addresses = g_mime_message_get_recipients (mime_message, GMIME_RECIPIENT_TYPE_TO);<br>
+    _index_address_list (message, "exactto", addresses);<br>
+<br>
+    addresses = g_mime_message_get_recipients (mime_message, GMIME_RECIPIENT_TYPE_CC);<br>
+    _index_address_list (message, "cc", addresses);<br>
+<br>
+    addresses = g_mime_message_get_recipients (mime_message, GMIME_RECIPIENT_TYPE_BCC);<br>
+    _index_address_list (message, "bcc", addresses);<br>
+<br>
     addresses = g_mime_message_get_all_recipients (mime_message);<br>
     _index_address_list (message, "to", addresses);<br>
<font color="#888888"><br>
--<br>
1.7.3.2<br>
<br>
_______________________________________________<br>
notmuch mailing list<br>
<a href="mailto:notmuch@notmuchmail.org">notmuch@notmuchmail.org</a><br>
<a href="http://notmuchmail.org/mailman/listinfo/notmuch" target="_blank">http://notmuchmail.org/mailman/listinfo/notmuch</a><br>
</font></blockquote></div><br>