比較複雜,可以支持多種邏輯符,包括+-andor空格等,並且根據需要隨便增加。可以根據條件選擇在那個表中搜索,對速度也做了優化,可以說是很快的。當然因為是以前寫的,存在不少毛病。存儲過程中用到幾乎所有sqlserver的特性,如光標(記錄集分頁)等。好了,不吹了,自己看程序吧。
asp函數
複製代碼代碼如下:
functionAnalyseKeyword(a_strSource)
dimm_strDest,m_intLoop
dimm_intBeginPos,m_intEndPos
dimm_strHead,m_strMiddle,m_strTail
m_strDest=a_strSource
'------------------------------處理空格------------------------------------------------------
'首先去掉頭尾空格
m_strDest=ltrim(rtrim(m_strDest))
'將&,"and"等替換成+、-、空格
m_strDest=replace(m_strDest,"&","+")
m_strDest=replace(m_strDest,"AND","+")
m_strDest=replace(m_strDest,"OR",chr(32))
m_strDest=replace(m_strDest,"NOT","-")
'初始化變量,以使下面的循環進行
m_intBeginPos=1
dowhilem_intBeginPos<>0
m_intBeginPos=instr(m_strDest,chr(32))
ifm_intBeginPos<>0then'如果找到空格
m_strHead=rtrim(ltrim(left(m_strDest,m_intBeginPos)))
callprint("[AnalyseKeyword()]:處理空格m_strHead="+m_strHead)
m_strTail=rtrim(ltrim(right(m_strDest,len(m_strDest)-m_intBeginPos)))
callprint("[AnalyseKeyword()]:處理空格m_strTail="+m_strTail)