Click here to Skip to main content
Click here to Skip to main content

Dynamic HTML Page creation & Search through Free Text and Meta Tags of HTML by Using Index Server

By , 1 Aug 2003
 

Introduction

The article mainly focuses on the problem faced in jobs portal to provide the mechanism to employers/recruiters to search job seeker’s uploaded and created resumes on the basis of given template, and vice versa for the job seekers to search the jobs on the basis of the specified criteria.

Issues

There are two solutions to cater this issue.

  • Solution No.1:

    All the relevant information regarding the job seeker should be stored in the database including their resumes. When employers fetch the resume on the basis of specified criteria, the records matching the certain criteria is fetched from the database by using normal SQL Query Language. But when employers specify the free text searching criteria (Free Text searching means specifying the keywords matching the result like Visual Basic developer, SQL Server experts etc.), the records are fetched from the database by using Free Text searching mechanism. SQL Server handles those fields in which Free Text searching applies separately to other fields by using separate pages, which in some extent, improve the performance but not always the better choice.

    The main drawback in the solution is that in jobs portal, we have millions of job seekers' (e.g. In monster.com etc.) profiles and this number increases day by day. So fetching the resumes from millions of records by using Free Text searching of SQL Server drastically degrades the performance of query execution time. We have inserted the resume (which normally in any case not less than 2 pages of MS Word document), so fetching those fields is also a teasing time query execution plan for SQL server.

  • Solution No.2:

    The 2nd and the most efficient way is to save the resumes in the HTML file format by specifying the meta tags (Meta tags is used to uniquely identify the HTML documents) and search those resumes by using the Index Server which is a part of Windows 2000/Windows Xp/Windows Server 2003.

Part A) Dynamic HTML Creation

The technique that I have used here is the creation of HTML templates, defined relevant fields and Meta tags names, through which I will be able to search the resumes in the 2nd part. (HTML template file is available with source code).

When job seekers create their profile and enter all the relevant information, I can retrieve all the contents of the template HTML page in the memory by using the StreamReader class in the System.IO namespace and one by one replace all the user’s provided credentials in the template HTML page and also set the meta tags name’s contents value from the user's given information and save the resume to HTML page by giving the filename like profileId.html (Profile ID is unique in any circumstance).

Part B) Search through Free Text and Meta Tags of HTML Pages by using Index Server

Index Server is a part of Windows 2000/Windows XP/Windows Server 2003, so there is no extra cost involved by using Index Server.

To configure Index Server, follow these steps:

  1. Locate the Index Server

    Start --> Setting --> Control Panel --> Administrative Tools --> Services and Applications --> Index Service

  2. Create a new catalogue

    Right click Index Server --> New --> Catalogue by providing the Catalogue name and folder in which Index Server manages the catalogue

  3. Map the searched folder

    Right click Directories under Catalogue name and then Select New --> Directory --> Locate the mapped directory and give it alias (UNC) like Profiles.

  4. Setting Catalogue’s Properties

    Right Click Catalogue --> Properties -->(Tracking --> WWW Server --> Select Default Website --> OK )

  5. Restart Index Server

    Restart the Index Server.

  6. Full Rescan the Mapped Folder

    Right Click the Mapped Folder --> All Task --> Rescan (Full)

  7. Refresh the Mapped folder meta tag properties

    Right Click Properties --> All Task --> Refresh List

  8. Cache the Meta Tag Properties

    Select catalogue --> Properties --> Select the Meta Tag properties one by one.

    Double click (Meta Tag Property) --> check the Cached Option and Select "VT_LPWSTR" option for string properties.

    Now from the development environment, I have used Index Server data access "ixssco control" type library with ASP.NET for Visual Basic. NET, but we can also use ASP 3.0, Visual Basic 6.0, ASP.NET for C#.NET etc. First, I have gathered all the information in which employee wants to see the resume, and then on the basis of information, built the dynamic query to send to Index Server object after defining the columns of meta tags and then displayed the result in the data grid.

Conclusion

This application is not only used for Job Portal but can be used to search specific data from an HTML page by using Index Server. And to make the dynamic HTML pages, we can not only generate the HTML but can also generate MS Word, Text Format, RTF format document as well.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Syed Adnan Ahmed
Architect Version 1
Ireland Ireland
Member
Adnan Ahmed is SharePoint Architect in Version 1(http://www.version1.com), the IT Consulting Company in Ireland and has involved with many large enterprises to help them realise real benefits of SharePoint 2007|2010.
 
SharePoint Architect | Blogger | IT Evangelist | MCPD SharePoint 2010 Developer| MCITP SharePoint Administrator 2010
 
Email: adnan.ahmed@live.ie
Owner: http://www.mossgurus.com
http://www.sp-blogs.com
Linked In Profile: http://www.linkedin.com/in/syedadnanahmed
 
My Blogs:
http://www.sp-blogs.com/blogs/adnan

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
Questionsearch a field in html page having table and save in database oracle through vb or vb.netmembernokia11081 Mar '07 - 4:25 
I having a problem that i want to search in html page. Html can be table which is consist of field like roll no,name etc. I want to search a roll no in html page and save that record in database like oracle,sql server..
 
vineet garg
email: vinsmart05@yahoo.com
GeneralTSQLmemberSphinx766 Mar '06 - 4:19 
Is there any way that you can define the extra colomns in TSQL and run it in a stored procedure ?!?;P
GeneralAbout Querymemberharibala14 Jul '05 - 20:21 
hi,
i'm trying to use ur demo project coding to my set of documents search. it's working fine if we give search keyword like "java".
my problem is i want to search words like "java and vb". The result should be the documents which has both "java" and "vb".
 
Also If we give Search word like "c" or "c++", the error is "The query contained only ignored words".
 
can you give me the idea for writing query for "And,or, Not" option? also for single character?
Confused | :confused:
Thanks,
GeneralAnd ...memberjalchr31 May '05 - 4:27 
If you can generate from .aspx page a .htm page so that you can save it on hard disk ? for faster retreival .... Then search engines can easily find it ? Cool | :cool:
 
Go Forward
http://www.fullmobile.net
Generali went to make index server in xml filesmemberjarrar15 Sep '03 - 21:40 
Hi Syed Adnan Ahmed I read your articles but I went to ask you question
I went to make search in xml files, I used asp.net, the index server
Will be index this files, (under un known extensions), the xml files contain title author and description, how can I deal with xml, if the index server treat the files as a text.

GeneralErrors In DownloadmemberPaul Tilson10 Aug '03 - 12:37 
I downloaded your code and have problems getting it to work. First the sql for creating the insert query has a problem and will not load. I worked with it and finally got it to load (may not be right though).
 
I went through all of the steps to create the "Search" index service. When I run the application, I get an error "can't convert null value to string" when I try to add a record.
 
I went on to the form for searching. I get "Record not found" even though it is in the catalog. I verified this by using the index service query to find different things.
 
If you get a chance would you debug the application and post an updated version.
 
Thanks,

 
Paul
GeneralThat can't Find any Recordmemberwinart6 Aug '03 - 16:59 
I download your code,and do it following readme.txt.
at first ,create the index server 'catalog named "search"
and the second, create the folder named Alias(unc),and the path is "demo\search\Profiles"
the 3th,full rescan the folder "alias"
the 4th,refresh the list of property.
the 5th ,i set the property-->SET meta tag property, checked the Cached Option and Select "VT_LPWSTR" option ,but such as Create, FileIndex and so on whose type is not or can't be string,i didn't select "VT_LPWSTR".
the 6th,start the index server.
of course,the website and the sqlserver setup ,i have done before above .
but when i finished these config.it can work,but can't find any record.
of course,i use the "host" to enter the website login and add new profile,for instance ,add "name:winart ," and so on.
then,when i use "admin" to search the keyword "winart" in the "/frmProfileSearch.aspx", the result is "no record found"
 
why??Mad | :mad:
 
No pain no gain!
GeneralDefineColumnmembervampiresoft5 Aug '03 - 11:22 
what are you doing with this lines?
what about if i want to search in word document and show it in a datagrid like the example in "Indexing Service" --> "Query the Catalog" - "Indexing Service Query Form"?
 
oQuery.DefineColumn("name (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 name")
oQuery.DefineColumn("spokenlanguage (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 spokenlanguage")
oQuery.DefineColumn("securityclearence (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 securityclearence")
oQuery.DefineColumn("relocate (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 relocate")
oQuery.DefineColumn("profileid (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 profileid")
oQuery.DefineColumn("location (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 location")
oQuery.DefineColumn("jobtype (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 jobtype")
oQuery.DefineColumn("designation (DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 designation")
 
oQuery.Columns = "vpath, filename, profileid, name, spokenlanguage, securityclearence, relocate, location, jobtype, designation"

 
___________________
Anthony Alvarado R.

GeneralRe: DefineColumnmemberSyed Adnan Ahmed5 Aug '03 - 18:58 
The define column is searching through Meta Tags of HTML Files. If you want to search through MsWord document you do not need to define column, you just get the columns like "vpath, filename etc"
Adnan
 
Microsoft.NET Professional with ASP.NET, VB.NET, SQL SERVER 2000, Application Server's experience.
GeneralRe: DefineColumnmembervampiresoft6 Aug '03 - 9:39 
oh ok now it is works!
thanks !
 
___________________
Anthony Alvarado R.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130523.1 | Last Updated 2 Aug 2003
Article Copyright 2003 by Syed Adnan Ahmed
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid