private PutMappingDescriptor <T> MapSuppressedEmailCompletionFields <T>(PutMappingDescriptor <T> pmd)
     where T : SuppressedEmail
 {
     return(pmd
            .Properties(props => props
                        .String(s => s.Name("email").Index(FieldIndexOption.NotAnalyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer")))
            .TimestampField(t => t
                            .Enabled(true)));
 }
Esempio n. 2
0
 private PutMappingDescriptor <T> MapSuppressionListFields <T>(PutMappingDescriptor <T> pmd)
     where T : SuppressionList
 {
     if (typeof(T).Equals(typeof(SuppressedEmail)))
     {
         return(pmd
                .Properties(props => props
                            .String(s => s.Name("email").Index(FieldIndexOption.NotAnalyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer")))
                .TimestampField(t => t
                                .Enabled(true)));
     }
     else
     {
         return(pmd
                .Properties(props => props
                            .String(s => s.Name("domain").Index(FieldIndexOption.NotAnalyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer")))
                .TimestampField(t => t
                                .Enabled(true)));
     }
 }
Esempio n. 3
0
 private PutMappingDescriptor <TContact> MapTagCompletionFields <TContact>(
     PutMappingDescriptor <TContact> tmd)
     where TContact : Tag
 {
     return(tmd.Properties(props => props
                           .Completion(s => s
                                       .Name(p => p.TagNameAutoComplete)
                                       .IndexAnalyzer("custom")
                                       .SearchAnalyzer("custom")
                                       .MaxInputLength(75)
                                       .Payloads()
                                       .PreservePositionIncrements()
                                       .PreserveSeparators()
                                       )
                           ));
 }
Esempio n. 4
0
        private PutMappingDescriptor <TContact> MapContactCompletionFields <TContact>(PutMappingDescriptor <TContact> pmd)
            where TContact : Contact
        {
            return(pmd
                   .Properties(props => props
                               .Completion(s => s
                                           .Name(p => p.TitleAutoComplete)
                                           .IndexAnalyzer("standard")
                                           .SearchAnalyzer("standard")
                                           .MaxInputLength(30)
                                           .Payloads()
                                           .PreservePositionIncrements()
                                           .PreserveSeparators()
                                           )
                               .Completion(s => s
                                           .Name(p => p.ContactFullNameAutoComplete)
                                           .IndexAnalyzer("standard")
                                           .SearchAnalyzer("standard")
                                           .MaxInputLength(75)
                                           .Payloads()
                                           .PreservePositionIncrements()
                                           .PreserveSeparators()
                                           )
                               .Completion(s => s
                                           .Name(p => p.CompanyNameAutoComplete)
                                           .IndexAnalyzer("standard")
                                           .SearchAnalyzer("standard")
                                           .MaxInputLength(50)
                                           .Payloads()
                                           .PreservePositionIncrements()
                                           .PreserveSeparators()
                                           )
                               .Completion(s => s
                                           .Name(p => p.EmailAutoComplete)
                                           .IndexAnalyzer("standard")
                                           .SearchAnalyzer("standard")
                                           .MaxInputLength(200)
                                           .Payloads()
                                           .PreservePositionIncrements()
                                           .PreserveSeparators()
                                           )
                               .Completion(s => s
                                           .Name(p => p.PhoneNumberAutoComplete)
                                           .IndexAnalyzer("standard")
                                           .SearchAnalyzer("standard")
                                           .MaxInputLength(200)
                                           .Payloads()
                                           .PreservePositionIncrements()
                                           .PreserveSeparators()
                                           )
                               .String(s => s.Name("firstName").Boost(1.0))
                               .String(s => s.Name("lastName").Boost(1.0))
                               .String(s => s.Name("title").Boost(1.0))

                               .String(s => s.Name("addresses.addressLine1").Index(FieldIndexOption.Analyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer"))
                               .String(s => s.Name("addresses.addressLine2").Index(FieldIndexOption.Analyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer"))
                               .String(s => s.Name("addresses.city").Index(FieldIndexOption.Analyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer"))
                               .String(s => s.Name("addresses.zipCode").Index(FieldIndexOption.Analyzed).Store(true).IndexAnalyzer("duplicateCheckAnalyzer").SearchAnalyzer("duplicateCheckAnalyzer"))
                               //FieldIndexOption.Analyzed will split the string into tokens, but if we use duplicateCheckAnalyzer with keyword tokenizer it won't split the string.
                               .Date(s => s.Name("createdOn").Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
                               .Date(s => s.Name("lastContacted").Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
                               .Date(s => s.Name("lastUpdatedOn").Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
                               .Date(s => s.Name("lastNoteDate").Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))

                               .String(s => s.Name("addresses.state.code").Index(FieldIndexOption.NotAnalyzed))
                               .String(s => s.Name("noteSummary").Index(FieldIndexOption.NotAnalyzed))
                               .String(s => s.Name("emails.emailId").Index(FieldIndexOption.NotAnalyzed).Boost(1.0))
                               .NestedObject <ContactTourCommunityMap>(a => a
                                                                       .Name("tourCommunity")
                                                                       .Dynamic()
                                                                       .IncludeInRoot()
                                                                       .Properties(p => p
                                                                                   .Number(n => n.Name(na => na.CommunityID))
                                                                                   .Number(n => n.Name(na => na.TourType))
                                                                                   .Number(n => n.Name(na => na.TourID))
                                                                                   .Number(n => n.Name(na => na.ContactId))
                                                                                   .Date(n => n.Name(na => na.TourDate).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
                                                                                   .Number(n => n.Name(na => na.CreatedBy))))
                               .NestedObject <ContactActionMap>(a => a
                                                                .Name("contactActions")
                                                                .Dynamic()
                                                                .IncludeInRoot()
                                                                .Properties(p => p
                                                                            .Date(n => n.Name(na => na.ActionDate).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
                                                                            .Number(n => n.Name(na => na.ActionID))
                                                                            .Number(n => n.Name(na => na.ActionType))
                                                                            .Number(n => n.Name(na => na.ContactId))
                                                                            .Date(n => n.Name(na => na.CreatedOn).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))))
                               .NestedObject <ContactNoteMap>(a => a
                                                              .Name("contactNotes")
                                                              .Dynamic()
                                                              .IncludeInRoot()
                                                              .Properties(p => p
                                                                          .Date(n => n.Name(na => na.CreatedOn).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd"))
                                                                          .Number(n => n.Name(na => na.NoteID))
                                                                          .Number(n => n.Name(na => na.NoteCategory))
                                                                          .Number(n => n.Name(na => na.ContactID))
                                                                          .Number(n => n.Name(na => na.CreatedBy))
                                                                          .String(n => n.Name(na => na.NoteDetails))))
                               .NestedObject <ContactCustomField>(no => no
                                                                  .Name("customFields")
                                                                  .Dynamic()
                                                                  .IncludeInRoot()
                                                                  .Properties(p => p
                                                                              .String(s => s.Name(sn => sn.Value).Index(FieldIndexOption.NotAnalyzed))
                                                                              .Date(d => d.Name(dn => dn.Value_Date).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd").NullValue(new DateTime()))
                                                                              .Number(n => n.Name(nam => nam.Value_Multiselect))
                                                                              .Number(n => n.Name(nam => nam.Value_Multiselect_Count))
                                                                              .Number(n => n.Name(nam => nam.Value_Number))
                                                                              .Number(n => n.Name(nam => nam.FieldInputTypeId))
                                                                              .Number(n => n.Name(nam => nam.CustomFieldId))
                                                                              .Number(n => n.Name(nam => nam.ContactId))
                                                                              .Number(n => n.Name(nam => nam.ContactCustomFieldMapId))))
                               .NestedObject <WebVisit>(w => w
                                                        .Name("webVisits")
                                                        .Dynamic()
                                                        .IncludeInRoot()
                                                        .Properties(p => p
                                                                    .Number(s => s.Name(sn => sn.ContactID))
                                                                    .Date(s => s.Name(sn => sn.VisitedOn).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd").NullValue(new DateTime()))
                                                                    .String(s => s.Name(sn => sn.PageVisited).Index(FieldIndexOption.NotAnalyzed))
                                                                    .Number(s => s.Name(sn => sn.Duration))))
                               .NestedObject <DropdownValue>(w => w
                                                             .Name("leadSources")
                                                             .Dynamic()
                                                             .IncludeInRoot()
                                                             .Properties(p => p
                                                                         .Date(s => s.Name(na => na.LastUpdatedDate).Format("yyyy-MM-dd'T'HH:mm:ss.SSS||yyyy-MM-dd'T'HH:mm:ss||MM/dd/yyyy||yyyy/MM/dd").NullValue(new DateTime()))
                                                                         .Boolean(s => s.Name(na => na.IsPrimary))
                                                                         .Number(s => s.Name(na => na.Id))))
                               .MultiField(m => m
                                           .Name(n => n.FacebookLink)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.FacebookLink)
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n.FacebookLink.Suffix("Raw"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name(n => n.TwitterLink)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.TwitterLink)
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n.TwitterLink.Suffix("Raw"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name(n => n.LinkedInLink)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.LinkedInLink)
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n.LinkedInLink.Suffix("Raw"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name(n => n.GooglePlusLink)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.GooglePlusLink)
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n.GooglePlusLink.Suffix("Raw"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name(n => n.WebsiteLink)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.WebsiteLink)
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n.WebsiteLink.Suffix("Raw"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name(n => n.BlogLink)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.BlogLink)
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n.BlogLink.Suffix("Raw"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name(s => s.CompanyName)
                                           .Fields(f => f
                                                   .String(s => s.Name(n => n.CompanyName)
                                                           .Index(FieldIndexOption.Analyzed).Boost(1.0))
                                                   .String(s => s.Name(n => n
                                                                       .CompanyName.Suffix("companyNameFull"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name("firstName")
                                           .Fields(f => f
                                                   .String(s => s.Name("firstName")
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n
                                                                       .CompanyName.Suffix("firstNameFull"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m
                                           .Name("lastName")
                                           .Fields(f => f
                                                   .String(s => s.Name("lastName")
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n
                                                                       .CompanyName.Suffix("lastNameFull"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .MultiField(m => m.
                                           Name("title")
                                           .Fields(f => f
                                                   .String(s => s.Name("title")
                                                           .Index(FieldIndexOption.Analyzed))
                                                   .String(s => s.Name(n => n
                                                                       .CompanyName.Suffix("titleFull"))
                                                           .Index(FieldIndexOption.Analyzed)
                                                           .Store(true)
                                                           .IndexAnalyzer("duplicateCheckAnalyzer")
                                                           .SearchAnalyzer("duplicateCheckAnalyzer"))))
                               .Date(d => d
                                     .Name("_timestamp")
                                     .Store(true))
                               )
                   .TimestampField(t => t
                                   .Enabled(true)));
        }