Exemple #1
0
        public void AddContent(Document document, BoostingDocumentBuilder docBuilder, MemberContent content)
        {
            if (content.Resume != null)
            {
                AddJobs(content, docBuilder, content.Resume.Jobs);
                AddSchools(docBuilder, content.Resume.Schools);
                AddCourses(docBuilder, content.Resume.Courses);
                AddAwards(docBuilder, content.Resume.Awards);

                docBuilder.AddText(FieldName.Content, content.Resume.Skills);
                docBuilder.AddText(FieldName.Content, content.Resume.Objective);
                docBuilder.AddText(FieldName.Content, content.Resume.Summary);
                docBuilder.AddText(FieldName.Content, content.Resume.Other);
                docBuilder.AddText(FieldName.Content, content.Resume.Affiliations);
                docBuilder.AddText(FieldName.Content, content.Resume.Professional);
                docBuilder.AddText(FieldName.Content, content.Resume.Interests);

                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Skills);
                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Objective);
                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Summary);
                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Other);
                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Affiliations);
                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Professional);
                docBuilder.AddText(FieldName.Content_Exact, content.Resume.Interests);
            }

            if (content.Candidate != null)
            {
                AddDesiredJobTitle(document, docBuilder, content.Candidate.DesiredJobTitle);
            }
        }
Exemple #2
0
        private static void AddJobs(MemberContent content, BoostingDocumentBuilder docBuilder, IList <Job> jobs)
        {
            if (jobs == null)
            {
                return;
            }

            for (var index = 0; index < jobs.Count; index++)
            {
                var job = jobs[index];

                // Content field.

                docBuilder.AddText(FieldName.Content, job.Title);
                docBuilder.AddText(FieldName.Content, job.Description);

                docBuilder.AddText(FieldName.Content_Exact, job.Title);
                docBuilder.AddText(FieldName.Content_Exact, job.Description);

                // Job title fields.

                docBuilder.AddText(FieldName.JobTitle, job.Title);
                docBuilder.AddText(FieldName.JobTitle_Exact, job.Title);

                if (index == 0)
                {
                    docBuilder.AddText(FieldName.JobTitleLast, job.Title);
                    docBuilder.AddText(FieldName.JobTitleLast_Exact, job.Title);
                }

                if (index < 3)
                {
                    docBuilder.AddText(FieldName.JobTitleRecent, job.Title);
                    docBuilder.AddText(FieldName.JobTitleRecent_Exact, job.Title);
                }

                if (content.Member.VisibilitySettings.Professional.EmploymentVisibility.IsFlagSet(ProfessionalVisibility.Resume) && content.Member.VisibilitySettings.Professional.EmploymentVisibility.IsFlagSet(ProfessionalVisibility.RecentEmployers))
                {
                    docBuilder.AddText(FieldName.Content, job.Company);
                    docBuilder.AddText(FieldName.Content_Exact, job.Company);

                    // Employer fields.

                    docBuilder.AddText(FieldName.Employer, job.Company);
                    docBuilder.AddText(FieldName.Employer_Exact, job.Company);

                    if (index == 0)
                    {
                        docBuilder.AddText(FieldName.EmployerLast, job.Company);
                        docBuilder.AddText(FieldName.EmployerLast_Exact, job.Company);
                    }

                    if (index < 3)
                    {
                        docBuilder.AddText(FieldName.EmployerRecent, job.Company);
                        docBuilder.AddText(FieldName.EmployerRecent_Exact, job.Company);
                    }
                }
            }
        }
Exemple #3
0
        private static void AddDesiredJobTitle(Document document, BoostingDocumentBuilder docBuilder, string desiredJobTitle)
        {
            if (!string.IsNullOrEmpty(desiredJobTitle))
            {
                document.add(new Field(FieldName.DesiredJobTitle, desiredJobTitle, Field.Store.NO, Field.Index.ANALYZED));
                document.add(new Field(FieldName.DesiredJobTitle_Exact, desiredJobTitle, Field.Store.NO, Field.Index.ANALYZED));

                docBuilder.AddText(FieldName.Content, desiredJobTitle);
                docBuilder.AddText(FieldName.Content_Exact, desiredJobTitle);
            }
        }
Exemple #4
0
        public void IndexContent(IndexWriter indexWriter, MemberContent content, bool isNew)
        {
            if (EventSource.IsEnabled(Event.Trace))
            {
                EventSource.Raise(Event.Trace, Method, "Adding Content.", Event.Arg("member", content.Member.Id));
            }

            var document   = new Document();
            var docBuilder = new BoostingDocumentBuilder(_contentAnalyzer);

            // Id.

            var id      = content.Member.Id.ToFieldValue();
            var idField = new Field(SearchFieldName.Id, id, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS);

            idField.setOmitTermFreqAndPositions(true);
            document.add(idField);

            // Handlers.

            _contentHandler.AddContent(document, docBuilder, content);
            _lastUpdatedHandler.AddContent(document, content);
            _desiredJobTypesHandler.AddContent(document, content);
            _candidateStatusHandler.AddContent(document, content);
            _ethnicStatusHandler.AddContent(document, content);
            _visaStatusHandler.AddContent(document, content);
            _industryHandler.AddContent(document, content);
            _communityHandler.AddContent(document, content);
            _salaryHandler.AddContent(document, content);
            _locationHandler.AddContent(document, content);
            _nameHandler.AddContent(document, content);
            _hasResumeHandler.AddContent(document, content);
            _isActivatedHandler.AddContent(document, content);
            _isContactableHandler.AddContent(document, content);

            // Save the document.

            docBuilder.CopyTo(document);
            if (isNew)
            {
                indexWriter.addDocument(document, _contentAnalyzer);
            }
            else
            {
                indexWriter.updateDocument(new Term(SearchFieldName.Id, id), document, _contentAnalyzer);
            }

            if (EventSource.IsEnabled(Event.Trace))
            {
                EventSource.Raise(Event.Trace, Method, string.Format("Content {0}.", isNew ? "Added" : "Updated"), Event.Arg("member", content.Member.Id), Event.Arg("lastupdate date", new[] { content.Member.LastUpdatedTime, content.Candidate.LastUpdatedTime, content.Resume == null ? DateTime.MinValue : content.Resume.LastUpdatedTime }.Max()), Event.Arg("document date", document.getValues(FieldName.LastUpdatedDay)));
            }
        }
Exemple #5
0
        private static void AddAwards(BoostingDocumentBuilder docBuilder, IEnumerable <string> awards)
        {
            if (awards == null)
            {
                return;
            }

            foreach (var award in awards)
            {
                docBuilder.AddText(FieldName.Content, award);
                docBuilder.AddText(FieldName.Content_Exact, award);

                docBuilder.AddText(FieldName.Education, award);
                docBuilder.AddText(FieldName.Education_Exact, award);
            }
        }
Exemple #6
0
        private static void AddCourses(BoostingDocumentBuilder docBuilder, IEnumerable <string> courses)
        {
            if (courses == null)
            {
                return;
            }

            foreach (var course in courses)
            {
                docBuilder.AddText(FieldName.Content, course);
                docBuilder.AddText(FieldName.Content_Exact, course);

                docBuilder.AddText(FieldName.Education, course);
                docBuilder.AddText(FieldName.Education_Exact, course);
            }
        }
Exemple #7
0
        private static void AddSchools(BoostingDocumentBuilder docBuilder, IEnumerable <School> schools)
        {
            if (schools == null)
            {
                return;
            }

            foreach (var school in schools)
            {
                // Content field.

                docBuilder.AddText(FieldName.Content, school.Institution);
                docBuilder.AddText(FieldName.Content, school.Degree);
                docBuilder.AddText(FieldName.Content, school.Major);
                docBuilder.AddText(FieldName.Content, school.Description);
                docBuilder.AddText(FieldName.Content, school.City);
                docBuilder.AddText(FieldName.Content, school.Country);

                docBuilder.AddText(FieldName.Content_Exact, school.Institution);
                docBuilder.AddText(FieldName.Content_Exact, school.Degree);
                docBuilder.AddText(FieldName.Content_Exact, school.Major);
                docBuilder.AddText(FieldName.Content_Exact, school.Description);
                docBuilder.AddText(FieldName.Content_Exact, school.City);
                docBuilder.AddText(FieldName.Content_Exact, school.Country);

                // Education field.

                docBuilder.AddText(FieldName.Education, school.Institution);
                docBuilder.AddText(FieldName.Education, school.Degree);
                docBuilder.AddText(FieldName.Education, school.Major);
                docBuilder.AddText(FieldName.Education, school.Description);
                docBuilder.AddText(FieldName.Education, school.City);
                docBuilder.AddText(FieldName.Education, school.Country);

                docBuilder.AddText(FieldName.Education_Exact, school.Institution);
                docBuilder.AddText(FieldName.Education_Exact, school.Degree);
                docBuilder.AddText(FieldName.Education_Exact, school.Major);
                docBuilder.AddText(FieldName.Education_Exact, school.Description);
                docBuilder.AddText(FieldName.Education_Exact, school.City);
                docBuilder.AddText(FieldName.Education_Exact, school.Country);
            }
        }