比較復雜,可以支持多種邏輯符,包括 + - and or 空格等,并且根據需要隨便增加??梢愿鶕l件選擇在那個表中搜索,對速度也做了優化,可以說是很快的。當然因為是以前寫的,存在不少毛病。存儲過程中用到幾乎所有sql server的特性,如光標(記錄集分頁)等。好了,不吹了,自己看程序吧。
asp 函數
復制代碼 代碼如下:
function AnalyseKeyword(a_strSource)
dim m_strDest , m_intLoop
dim m_intBeginPos , m_intEndPos
dim m_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
do while m_intBeginPos <> 0
m_intBeginPos = instr(m_strDest ,chr(32))
if m_intBeginPos <> 0 then '如果找到空格
m_strHead = rtrim(ltrim(left ( m_strDest , m_intBeginPos )))
call print("[AnalyseKeyword()]:處理空格m_strHead = " + m_strHead)
m_strTail = rtrim(ltrim(right (m_strDest , len(m_strDest) - m_intBeginPos)))
call print("[AnalyseKeyword()]:處理空格m_strTail = " + m_strTail)