代码之家  ›  专栏  ›  技术社区  ›  XOR

如何在文本跨越多个列时进行全文查询

  •  0
  • XOR  · 技术社区  · 16 年前

    问题是:我是否可以告诉SQL Server,属于特定表的一行的所有字段都应该被视为一个连续文本片段?

    以防万一,这个查询。这与人的名字无关,但想法是一样的:

    SELECT [id], [type], [accessClass], [rank] 
    FROM ( 
    SELECT DISTINCT temp_result.* 
    FROM ( 
        select SDF_Article.article_id [id], 
        6 [type], SDF_Object.accessClass [accessClass], RelevanceTable.[rank] [rank] 
        from SDF_Article inner join SDF_Object SDF_Object 
        on SDF_Article.article_id=SDF_Object.object_id 
        inner join SDF_Article_Locale SDF_Article_Locale 
        on SDF_Article.article_id=SDF_Article_Locale.article 
        inner join ContainsTable(SDF_Article_Locale, (title, body, brief),
        'FORMSOF (INFLECTIONAL, hello) AND FORMSOF (INFLECTIONAL, world)', Language 'Russian') RelevanceTable 
        on SDF_Article_Locale.entry_id=RelevanceTable.[KEY] 
        ) AS temp_result 
    INNER JOIN SDF_RelationMap SDF_Map 
    ON temp_result.[id] = SDF_Map.object AND SDF_Map.ancestor = 5 ) 
    AS result ORDER BY [rank] desc
    

    2 回复  |  直到 16 年前
        1
  •  2
  •   pdavis    16 年前

    一种解决方案是创建一个自动填充的列,该列包含要索引和搜索的列。然后将全文索引器指向此列。然后围绕新列形成查询。

        2
  •  0
  •   XOR    16 年前

    事实证明,SQL Server中不支持此功能。更重要的是,这种行为在2004年被“纠正”: http://support.microsoft.com/default.aspx?scid=kb;en-us;294809

    我在MS Connect中添加了建议。请支持: https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=526862

    推荐文章