Coveo Knowledge Base – Information Article – 060330-1

CES4-060330-1: Exchange Server Sources Custom Fields

The information in this technical note applies to:

Coveo Enterprise Search 4

Summary

Coveo Enterprise Search can index MAPI, Microsoft Exchange Server and user-defined properties as custom fields. This article lists MAPI properties and MAPI property types. It also explains how to handle custom field for Exchange Server sources.

Custom Fields from MAPI Properties

The system administrator can index Exchange item MAPI properties as custom fields. For instance, the PR_LAST_MODIFIER_NAME property of a message (the name of the last user who modified the message) can be indexed as the modifiername custom field. Then, the following query:

@modifiername=John

Finds email messages containing "John" in the modifiername field. Thus, all email messages found will have been last modified by a user named John.

To add a custom field

(refer to Administration Tool help article " Add Custom Fields")

For the example, we used the following properties:

Name

modifiername

Name of the custom field to use for queries.

Type

String

PR_LAST_MODIFIER_NAME is a PT_TSTRING property (as seen in the MAPI documentation).

Metadata Name

pr_last_modifier_name

Name of the MAPI property to get.

 

Here is a list of MAPI property types and the corresponding custom field types.

PT_STRING8

PT_TSTRING

PT_UNICODE

String

PT_I2

PT_LONG

PT_BOOLEAN

PT_I8

Numeric

PT_APPTIME

PT_SYSTIME

Date

PT_R4

PT_DOUBLE

Floating Point Number

Multivalued properties are also supported. String properties are concatenated (though space separated). For example, if the property PR_AUTHOR_COMPANIES contains the three following values: MakeUp Inc, WebStartup and Coveo. When the property is indexed, the custom field contains the value: MakeUp Inc WebStartup Coveo.

With other multivalued property types, only the first value will be kept and defined as the value of the property. For example, if the property PR_AUTHOR_CODES contains the three following values: 18923, 84726 and 28172. When the property is indexed, the custom field only keeps the first value: 18923.

There are two special cases: PT_I8 and PT_SYSTIME. These types have a wider range than the supported ranges for other custom fields. Should their values be too big or too small to fit in a custom field, the following values would be used instead:

 

Property value

Custom field value

PT_I8

Bigger than 2 147 483 647

2 147 483 647

 

Smaller than -2 147 483 648

-2 147 483 648

PT_SYSTIME

Bigger than 2038/01/17 22:14:07

2038/01/17 22:14:07

 

Smaller than 1970/01/01 00:00:00

1970/01/01 00:00:00

 

Here is a list of available MAPI properties that Coveo Enterprise Search can index. Refer to the Microsoft’s MAPI documentation to have more information on each of these properties.

pr_access

pr_access_level

pr_acknowledgement_mode

pr_alternate_recipient_allowed

pr_arrival_time

pr_attach_extension

pr_attach_filename

pr_attach_long_filename

pr_attach_long_pathname

pr_attach_mime_tag

pr_attach_pathname

pr_attach_size

pr_attach_transport_name

pr_auto_forward_comment

pr_auto_forwarded

pr_body_crc

pr_client_submit_time

pr_comment

pr_content_identifier

pr_content_length

pr_content_return_requested

pr_conversation_topic

pr_conversion_prohibited

pr_conversion_with_loss_prohibited

pr_correlate

pr_creation_time

pr_creator_name

pr_deferred_delivery_time

pr_deferred_send_number

pr_deferred_send_time

pr_deferred_send_units

pr_delete_after_submit

pr_deliver_time

pr_delivery_point

pr_discard_reason

pr_disclosure_of_recipients

pr_discrete_values

pr_display_bcc

pr_display_cc

pr_display_to

pr_end_date

pr_excess_storage_used

pr_expiry_number

pr_expiry_time

pr_expiry_units

pr_explicit_conversion

pr_gw_admin_operations

pr_has_named_properties

pr_hasattach

pr_implicit_conversion_prohibited

pr_importance

pr_incomplete_copy

pr_ipm_return_requested

pr_languages

pr_last_modification_time

pr_last_modifier_name

pr_latest_delivery_time

pr_message_class

pr_message_delivery_time

pr_message_flags

pr_message_locale_id

pr_message_size

pr_mhs_common_name

pr_msg_status

pr_ndr_diag_code

pr_ndr_reason_code

pr_non_receipt_notification_requested

pr_non_receipt_reason

pr_normalized_subject

pr_object_type

pr_orig_message_class

pr_original_author_addrtype

pr_original_author_name

pr_original_delivery_time

pr_original_display_bcc

pr_original_display_cc

pr_original_display_to

pr_original_sender_addrtype

pr_original_sender_name

pr_original_sensitivity

pr_original_sent_representing_addrtype

pr_original_sent_representing_name

pr_original_submit_time

pr_originally_intended_recip_addrtype

pr_originally_intended_recipient_name

pr_originator_addr

pr_originator_addrtype

pr_originator_delivery_report_requested

pr_originator_name

pr_originator_non_delivery_report_requested

pr_owner_appt_id

pr_physical_delivery_bureau_fax_delivery

pr_physical_delivery_mode

pr_physical_delivery_report_request

pr_physical_forwarding_address_requested

pr_physical_forwarding_prohibited

pr_priority

pr_proof_of_delivery_requested

pr_proof_of_submission_requested

pr_provider_submit_time

pr_rcvd_representing_addrtype

pr_rcvd_representing_name

pr_read_receipt_requested

pr_receipt_time

pr_received_by_addrtype

pr_received_by_email_address

pr_received_by_name

pr_recipient_number

pr_recipient_reassignment_prohibited

pr_registered_mail_type

pr_remote_progress

pr_remote_progress_text

pr_remote_validate_ok

pr_replica_server

pr_reply_recipient_names

pr_reply_requested

pr_reply_time

pr_report_destination_name

pr_report_name

pr_report_text

pr_report_time

pr_response_requested

pr_returned_ipm

pr_rtf_in_sync

pr_security

pr_send_rich_info

pr_sender_addrtype

pr_sender_name

pr_sensitivity

pr_sent_representing_addrtype

pr_sent_representing_email_address

pr_sent_representing_name

pr_start_date

pr_storage_quota_limit

pr_subject

pr_subject_prefix

pr_supplementary_info

pr_svr_generating_quota_msg

pr_transport_message_headers

pr_type_of_mts_user

Custom Fields from User-Defined Properties

Coveo Enterprise Search also indexes user-defined properties. For instance, imagine that most of the Exchange Server items contain the name of the sender's company in a user-defined property called sender_company. Several users would like to query by names of company. Then, the system administrator only needs to add a "sender_company" custom field to the appropriate source. In the following image, the custom field is called company. Once the field is added, users can use it to perform their queries and thus find all items whose sender is from a specified company.

@company=Coveo

Finds all documents with the word "Coveo" in the "Company" field.

Here are the values used in the following image to create the custom field:

Name

company

Name of custom field to use for queries.

Type

String

The user-defined property is a string.

Metadata Name

sender_company

Name of the user-defined property to retrieve.

 

Note that there are two restrictions on a user-defined property:

1.       Its name must be different from the predefined MAPI properties listed above;

2.       Its name must be a string (not a numeric value).

 

 

Last Reviewed

2006/03/30

Keywords

Exchange Server properties, User-defined properties, MAPI properties, Custom field