1

我被困在产品搜索的 nopcommerce 存储过程中,这很安静。所以我无法发布代码。但部分存储过程是

where 
   --Some conditions
AND (
                @SearchKeywords = 0 or 
                (
                patindex(@Keywords, p.name) > 0  
                    )

)

在这里,如果 p.name 是“Gemini Refined Sunflower Oil”,我已经将关键字转换为带分隔符的关键字,例如“gemini oil”到“%gemini%oil%”,它可以正常工作。

但是如果我的关键字是 '%oil%gemini%' 它不起作用。所以基本上我想返回结果,即使搜索关键字中的单词与 p.name 匹配,条件是搜索关键字中的单词可以是任何顺序。包含减慢存储过程,因此该选项无法工作。

任何帮助,将不胜感激。

4

2 回答 2

2

SQL Server 全文搜索应该可以帮助您。您基本上将在要搜索的列上创建索引。在查询的 where 子句中,您将使用 CONTAINS 运算符并将您的搜索输入传递给它。

你可以开始http://msdn.microsoft.com/en-us/library/ms142571.aspxhttp://beingoyen.blogspot.in/2008/09/full-text-search-step-by-step-tutorial .html 了解更多

stephen776 已经在不同的帖子中回答了

再次在这里发帖以提高知名度

于 2013-07-05T06:08:55.913 回答
1

您应该创建一个全文索引。这就是他们的目的。contains然后,您可以使用或功能在您的列中进行搜索freetext

警告:全文搜索非常强大,您应该熟悉可能性和注意事项(停用词列表!)。

于 2013-07-05T06:03:12.770 回答