SQL Server Full Text Search
时间:2010-12-09 来源:Navi
- FREETEXT
- FREETEXTTABLE
- CONTAINS
- CONTAINSTABLE
FREETEXT is the easiest of these to work with; it lets you specify a search term but then tries to look at the meaning rather than the exact term when finding matches. For instance, here's a query using FREETEXT together with its results:
SELECT ProductName FROM Products WHERE FREETEXT (ProductName, 'spread' ) ProductName ---------------------------------------- Grandma's Boysenberry Spread Vegie-spread (2 row(s) affected)
As you can see, FREETEXT finds the word or words you give it anywhere in the search column. FREETEXTTABLE works like FREETEXT except that it returns its results in a Table object.
CONTAINS (and CONTAINSTABLE, which works the same but delivers results in a table) offers a much more complex syntax for using a full-text indexed column:
For instance, you can search for one word "near" another this way:
SELECT ProductName FROM Products WHERE CONTAINS(ProductName, '"laugh*" NEAR lager') ProductName ---------------------------------------- Laughing Lumberjack Lager (1 row(s) affected)
Note the use of "laugh*" to match any word starting with "laugh." You can also supply a weighted list of terms to CONTAINS, and it will prefer matches with a higher weight: SELECT ProductName FROM Products WHERE CONTAINS(ProductName, 'ISABOUT (stout weight (.8), ale weight (.4), lager weight (.2) )' ) ProductName ---------------------------------------- Laughing Lumberjack Lager Steeleye Stout Sasquatch Ale Outback Lager (4 row(s) affected)
相关阅读 更多 +