2010-04-06 11 views
2

我已經搜索了這個答案,我似乎無法找到一個應該有點簡單的答案。如何將用戶的搜索查詢轉換爲MS SQL全文查詢語句

這與another question I asked有關,但它是不同的。將用戶的搜索短語放入CONTAINSTABLE(table, column, @phrase, topN)短語中的最佳方法是什麼?

說,例如用戶輸入:Books by "Dr. Seuss"

什麼是把這一到的東西,會在我ContainsTAble()短語返回結果的最佳方式?

我之前解析了搜索詞組,並且寫了類似ISABOUT("Books" WEIGHT(1.0), "by" WEIGHT(0.9), "Dr. Seuss" WEIGHT(0.8))的文章作爲我的@phrase,但ISABOUT似乎返回了奇怪的結果......特別是當輸入一個單詞時。

任何想法?

回答

0

我們已經實施了在this article on SQL Server Central中找到的代碼的稍微修改版本。它使用Codeplex的Irony Compiler Construction Kit。

使用保留字啓動任何搜索查詢時,原始版本中存在一個錯誤。例如,通過搜索'Orange',它會識別OR項並預計未提供的二元操作數。這已在討論論壇中提供的一些代碼中得到解決,該文章現在已達13頁!