* try harder to match special strings

This commit is contained in:
djcb 2013-05-29 07:33:17 -07:00
parent a7f71798e4
commit b136ca0411
3 changed files with 8 additions and 6 deletions

View File

@ -91,8 +91,6 @@ private:
} else
return false;
}
};
@ -229,8 +227,8 @@ get_query (MuQuery *mqx, const char* searchexpr, GError **err)
(preprocessed,
Xapian::QueryParser::FLAG_BOOLEAN |
Xapian::QueryParser::FLAG_PURE_NOT |
Xapian::QueryParser::FLAG_WILDCARD |
Xapian::QueryParser::FLAG_AUTO_SYNONYMS |
Xapian::QueryParser::FLAG_WILDCARD |
Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE
);
g_free (preprocessed);
@ -269,8 +267,8 @@ add_prefix (MuMsgFieldId mfid, Xapian::QueryParser* qparser)
qparser->add_prefix (shortcut, pfx);
}
// all fiels are also matched implicitly, withouth
// an
// all fields are also matched implicitly, without
// any prefix
qparser->add_prefix ("", pfx);
} MU_XAPIAN_CATCH_BLOCK;

View File

@ -318,7 +318,10 @@ add_terms_values_str (Xapian::Document& doc, const char *val, MuMsgFieldId mfid)
if (mu_msg_field_xapian_index (mfid)) {
Xapian::TermGenerator termgen;
termgen.set_document (doc);
termgen.index_text_without_positions (val, 1, prefix(mfid));
termgen.index_text_without_positions (str, 1, prefix(mfid));
if (g_strcmp0 (val, str) != 0)
termgen.index_text_without_positions (val, 1, prefix(mfid));
// g_print ("%s --> '%s' (%s)\n", mu_msg_field_name (mfid), val, str);
}
// g_print ("%s --> '%s'\n", mu_msg_field_name (mfid), str);

View File

@ -475,6 +475,7 @@ handle_esc_maybe (GString *gstr, char **cur, gunichar uc,
case '(':
case ')':
case '*':
case '&':
case '"':
g_string_append_c (gstr, kar);
return TRUE;