message/fields: explicit mark contact fields as IndexableTerm

They were so *implicitly*, but the query parser needs the info so contact fields
can use phrase-searces, too.
This commit is contained in:
Dirk-Jan C. Binnema 2022-06-09 00:02:37 +03:00
parent 699ce5369b
commit 49b97e1b6b
2 changed files with 10 additions and 6 deletions

View File

@ -94,14 +94,13 @@ validate_field_flags()
/* - A field has at most one of Indexable, HasTerms, IsXapianBoolean and /* - A field has at most one of Indexable, HasTerms, IsXapianBoolean and
IsContact. */ IsContact. */
size_t flagnum{}; size_t flagnum{};
if (field.is_indexable_term()) if (field.is_indexable_term())
++flagnum; ++flagnum;
if (field.is_boolean_term()) if (field.is_boolean_term())
++flagnum; ++flagnum;
if (field.is_normal_term()) if (field.is_normal_term())
++flagnum; ++flagnum;
if (field.is_contact())
++flagnum;
if (flagnum > 1) { if (flagnum > 1) {
//g_warning("invalid field %*s", STR_V(field.name)); //g_warning("invalid field %*s", STR_V(field.name));

View File

@ -225,7 +225,9 @@ static constexpr std::array<Field, Field::id_size()>
'h', 'h',
Field::Flag::Contact | Field::Flag::Contact |
Field::Flag::Value | Field::Flag::Value |
Field::Flag::IncludeInSexp Field::Flag::IncludeInSexp |
Field::Flag::IndexableTerm,
}, },
{ {
Field::Id::BodyText, Field::Id::BodyText,
@ -245,7 +247,8 @@ static constexpr std::array<Field, Field::id_size()>
'c', 'c',
Field::Flag::Contact | Field::Flag::Contact |
Field::Flag::Value | Field::Flag::Value |
Field::Flag::IncludeInSexp Field::Flag::IncludeInSexp |
Field::Flag::IndexableTerm,
}, },
{ {
@ -308,7 +311,8 @@ static constexpr std::array<Field, Field::id_size()>
'f', 'f',
Field::Flag::Contact | Field::Flag::Contact |
Field::Flag::Value | Field::Flag::Value |
Field::Flag::IncludeInSexp Field::Flag::IncludeInSexp |
Field::Flag::IndexableTerm,
}, },
{ {
Field::Id::Maildir, Field::Id::Maildir,
@ -436,7 +440,8 @@ static constexpr std::array<Field, Field::id_size()>
't', 't',
Field::Flag::Contact | Field::Flag::Contact |
Field::Flag::Value | Field::Flag::Value |
Field::Flag::IncludeInSexp Field::Flag::IncludeInSexp |
Field::Flag::IndexableTerm,
}, },
/* internal */ /* internal */