【问题标题】:Full Text Search searching issue全文搜索搜索问题
【发布时间】:2011-04-22 11:29:43
【问题描述】:

我在这里的原因是 SQL 2005 全文搜索。

我在这里用这个查询进行搜索:

declare @SearchText nvarchar(1000)
set @SearchText='Dream';

SELECT  *         
 FROM              
  MashupSearchLookup AS FT_MyTable   WITH (NOLOCK)             
  INNER JOIN FREETEXTTABLE(MyTable, *, @SearchText ) AS KEY_TBL           
  ON FT_MyTable.ID = KEY_TBL.[KEY]  

当我搜索 football 时,它显示 3 行,这很好,但是当我搜索 football 时,没有返回任何记录。对我来说,它正在搜索匹配确切的大小写。

我可以做些什么来获得football 的结果吗?

谢谢

【问题讨论】:

    标签: sql-server-2005 search full-text-search


    【解决方案1】:

    要搜索以foot 开头的单词,请使用:

    SELECT  *
    FROM    MashupSearchLookup
    WHERE   CONTAINS(*, '"foot*"')
    

    SQL ServerFULLTEXT 查询不能匹配后缀或中缀(即您不能搜索"*ball""*otba*")。

    你可以做的最好的搜索是使用LIKE

    SELECT  *
    FROM    MashupSearchLookup
    WHERE   col1 LIKE '%ball%'
            OR col2 LIKE '%ball%'
    

    等等

    【讨论】:

    • 感谢您的回复,我现在有两个问题,如果用户输入“足球”,那么我必须像脚或球一样传球吗?第二件事是 m 使用 RANK 这就是我使用 FREETEXTTABLE 的原因
    • @user:查询'"foot" OR "ball"'(或'"foot*" OR "ball*"',在你想匹配前缀)。如果您需要RANK,您可以使用CONTAINSTABLE 而不是CONTAINS
    猜你喜欢
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多