I effectively use a form term, too, except I modify the term submitted in 
the form to: (1) Remove noise words (since SQL7 doesn't do it as 
advertised) (2) Automate proximity matching, and (3) enable wildcard searches:

best,  paul

==================================
<!--- Pound down spaces to 1 between words & replace with "~" to enable 
proximity matching -- Will handle up to 9 spaces in a row --->
<CFSET VARIABLES.SEARCHTERM = REREPLACE(VARIABLES.SEARCHTERM,"  "," ","ALL")>
<CFSET VARIABLES.SEARCHTERM = REREPLACE(VARIABLES.SEARCHTERM,"  "," ","ALL")>
<CFSET VARIABLES.SEARCHTERM = REREPLACE(VARIABLES.SEARCHTERM,"  "," ","ALL")>
<CFIF REFINDNOCASE(" ","#VARIABLES.SEARCHTERM#")>
         <CFSET VARIABLES_SEARCHTERM = REREPLACE(VARIABLES.SEARCHTERM," 
","~","ALL")>
<CFELSE>
         <CFSET VARIABLES_SEARCHTERM = VARIABLES.SEARCHTERM>
</CFIF>

<!--- Remove Noise words --->
<CFIF LISTLEN(VARIABLES_SEARCHTERM,"~") GT 1>
         <CFLOOP LIST="#VARIABLES_SEARCHTERM#" INDEX="III" DELIMITERS="~">
                 <CFQUERY NAME="RemoveNoise" DATASOURCE="#REQUEST.DSN#" 
USERNAME="#REQUEST.USER#" PASSWORD="#REQUEST.PASS#">
                         SELECT N_Word FROM NoiseWords
                         WHERE N_Word = '#III#'
                 </CFQUERY>
                 <CFIF REMOVENOISE.RECORDCOUNT>
                         <CFSET VARIABLES_SEARCHTERM = 
LISTDELETEAT(VARIABLES_SEARCHTERM,LISTFINDNOCASE(VARIABLES_SEARCHTERM,III,"~"),"~")>
                 </CFIF>
         </CFLOOP>

         <CFIF LISTLEN(VARIABLES_SEARCHTERM,"~") IS 0>
                 <CFLOCATION ADDTOKEN="No" 
URL="/IgnoredWords/index.cfm/IN.#VARIABLES.INIT#/CD.#URL.CFID#/CN.#URL.CFTOKEN#">
         </CFIF>

</CFIF>

<!--- Automate Wildcard searches --->
<CFIF FIND("~",VARIABLES_SEARCHTERM)>
<CFLOOP LIST="#VARIABLES_SEARCHTERM#" INDEX="III" DELIMITERS="~">
<CFIF RIGHT(III,1) IS "*">
<CFSET VARIABLES_SEARCHTERM = 
ListSetAt(VARIABLES_SEARCHTERM,LISTFINDNOCASE(VARIABLES_SEARCHTERM,III,"~")," 
""#III#"" ","~")>
</CFIF>
</CFLOOP>
<CFELSE>
<CFIF RIGHT(VARIABLES_SEARCHTERM,1) IS "*">
<CFSET VARIABLES_SEARCHTERM = "  ""#VARIABLES_SEARCHTERM#""  ">
</CFIF>
</CFIF>
=======================

best,  paul



At 01:47 PM 11/22/00 -0500, you wrote:
>You will have to use OR to do multiple 'CONTAINS' searches (to the best of
>my knowledge).  I usually use it with syntax like: WHERE db_fieldname
>CONTAINS ('form.searchparam'), myself.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to