Adding an indexed Search to your site (Part 2)

3Back to part one of this tutorial

For part two of this tutorial we will be keeping the search form that was created earlier in part one. We will also need to add an update page to update our collection with the db info. Lastly we will be modifying the results page just a bit.

Just to recap here is the search form once more:
<html>
  <head>
    <title>
Search this site</title>
  </head>

  <body>
  <strong>
What would you like to search for? </strong> 
  <form name="form1" method="post" action="verity_search_results.cfm">
  <p>
    <input name="criteria" type="text" id="criteria">
    <input type=
"submit" name="Submit" value="Submit">
  </p>
  </form>
  </body>
</html>


Now, we want to the ability to update our collection as our site grows so, what we need to do is create an update collection page. Ill call this verity_update.cfm

Here Is what I did:

<html>
  <head>
    <title>
Update Verity Collection</title>
    <meta http-equiv=
"Content-Type" content="text/html; charset=iso-8859-1">
  </head>

  <body>

  <cfquery name="get_db_info" datasource="#dsn#">
      select *
       from YourTable
  </cfquery>

<cfindex query="get_db_info" <!--- Specify the query from above. --->
            collection=
"YourCollection" <!--- Specify What Collection to Update. --->
            action=
"update" <!--- Actions include: update, delete, refresh, or purge. --->
            type=
"custom" <!--- If action is update or delete "custom" type is required. --->
            key=
"SomeFieldname" <!--- Key is usually set to your Key Fieldname. It will be referenced later. --->
            title=
"AnotherFieldname" <!--- The Title will appear in the list of verity results. --->
            Custom1=
"CustomFieldname" <!--- You may add a custom1 and custom2 field if additional information is needed. --->
            body=
"Fields, To, Be, Indexed"> <!--- Body to be indexed, sepertaed by comas. --->

  Your Collection has been updated.
  </body>
</html>


Lastly we need to make the modifications to the results page.

<html>
  <head>
    <title>
Verity Search Results</title>
    <meta http-equiv=
"Content-Type" content="text/html; charset=iso-8859-1">
  </head>

  <body>

  <!--- Use CFSEARCH Tag with collection information here --->
  <cfsearch name="YourSearchName"
               
collection="YourCollection"
                criteria=
"#form.criteria#">

  <!--- Begin displaying results of your serch --->
  <strong>Your Results</strong> 



<!--- Here I'll demonstrate How to use verity to display different types of data --->
<!--- By checking the results to see if the page is indexed or if the data is from the db I can switch modes here. --->

<cfoutput query="YourSearchName"> 
   <cfif URL IS "">
     <p><a href="item_details.cfm?Item_ID=#key#">#title#</a><br>
     Score: #score#</p>
   <cfelse>
     <p><a href="#URL#">#title#</a><br>
     Score: #score#</p>
   </cfif>
</cfoutput> 

</body>
</html>


That's pretty much it. Very simple but effective.

3Back to part one of this tutorial



All ColdFusion Tutorials By Author: Mark Aplet
  • Adding an indexed Search to your site (Part 1)
    It is very easy to set up and create a professional search function much like a real search engine. Use Verity Collections and the tag to create fast search forms for your web sites.
    Author: Mark Aplet
    Views: 31,047
    Posted Date: Saturday, February 1, 2003
  • Adding an indexed Search to your site (Part 2)
    The long overdue part two of adding a verity search function. This part demonstrates how to index the information in your database so that it becomes usefull too.
    Author: Mark Aplet
    Views: 19,959
    Posted Date: Monday, May 5, 2003
  • Banning the spam
    Internet spam is on the rise, and more importantly spammers are targeting your sites comment forms. They are looking for the trackback urls to fool search engines into ranking their website higher in the search results. When this started to happen to me, I wanted to sent out emails to the offenders demanding that they stop. Unfortunatly the spam is being generated by bots and programs not some pimple faced kid behind a keyboard. Banning IP addresses is not enough and rarely works since intelligent spammers hide their true identity anyway. Next approach... Banning Keywords used by the offending sites. Thats where this tutorial comes in.
    Author: Mark Aplet
    Views: 7,616
    Posted Date: Wednesday, March 15, 2006
  • Changing site color scheme
    Add some personalization to your pages by letting the user pick their own color scheme. It's really quite simple and the benifits are awsome. This tutorial shows you how to set up your pages to use a dynamicly included scheme. It will also show you how to create all the pages neccessary to administer the color schemes.
    Author: Mark Aplet
    Views: 18,701
    Posted Date: Friday, November 29, 2002
  • Color Picker
    Sometimes, you want to be able to change the color of something on your page. Be it one item, or every item on the page. Using this simple color picker, you can create admin areas that can allow you or your visitors to pick their own colors and the value is automatically inserted into a text field.
    Author: Mark Aplet
    Views: 12,200
    Posted Date: Saturday, July 12, 2003
  • Dynamic Sorting with CFSWITCH
    Quickly and easily sort and order records in your database using a cfswitch in your query. Great technique for admin areas of your site, or just allowing visitors to sort the fields they want.
    Author: Mark Aplet
    Views: 14,938
    Posted Date: Sunday, August 3, 2003
  • Improving Application Performance
    One thing I am always trying to do is speed up my applications. As my site grows in size and complexity I find that I spend a fair amount of time re-coding pages because of a new technique I just learned. I wish I had learned about these techniques long before, and thereby allowing me to create more effective code. In this tutorial I'll try to explain some problem areas that I have identified, and some of the things you can do to improve performance.
    Author: Mark Aplet
    Views: 15,384
    Posted Date: Monday, January 12, 2004
  • Improving Application Performance (Part 2)
    Not all queries can be saved as an application variable. For Queries that do not meet the checkpoints in my previous tutorial there is another way to improve performance. Query Caching is another way to save data and eliminate unnecessary queries. This is for queries that are more dynamic in nature.
    Author: Mark Aplet
    Views: 9,244
    Posted Date: Monday, January 12, 2004
  • Slighty better search
    Someone on the forum posed a question a short while ago asking how to create a more advanced search function using a + symbol as a separator. So I created this advanced search function. This search function is just slightly better than a normal search as it adds the ability to separate two keywords with a + symbol. Lets start with the search form.
    Author: Mark Aplet
    Views: 16,207
    Posted Date: Thursday, December 4, 2003