Sql server SQL查询,从数据库表中获取与特定句子匹配词最多的列记录。Microsoft SQL server 2012

Sql server SQL查询,从数据库表中获取与特定句子匹配词最多的列记录。Microsoft SQL server 2012,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我有这样一句话: I want to say hi for everybody here. 我想根据匹配单词的数量检查表中的特定列是否包含类似的句子 表行 大家好 在这里打招呼 在这里为大家问好 我需要得到第三行,因为它包含最多的匹配单词 感谢您的友好反馈。非常紧急。您应该在列上设置全文索引,并使用功能您应该在列上设置全文索引,并使用功能带代码的完整答案有点长,但是,对于处理人名的类似问题,我使用的一个解决方案是,除了包含完整句子的表格之外,还要有一个单词表。创建一个相交表,在句子和单词之间进

我有这样一句话:

I want to say hi for everybody here.
我想根据匹配单词的数量检查表中的特定列是否包含类似的句子

表行

  • 大家好
  • 在这里打招呼
  • 在这里为大家问好
  • 我需要得到第三行,因为它包含最多的匹配单词


    感谢您的友好反馈。非常紧急。

    您应该在列上设置全文索引,并使用功能

    您应该在列上设置全文索引,并使用功能

    带代码的完整答案有点长,但是,对于处理人名的类似问题,我使用的一个解决方案是,除了包含完整句子的表格之外,还要有一个单词表。创建一个相交表,在句子和单词之间进行多对多映射。添加句子时,还可以将其拆分为单词,并更新单词表和intersect表

    给定一个要搜索的句子,您可以构造一个查询,其中包含一个where子句,如
    单词in(“I”、“want”、“to”
    …等,将其连接到intersect表,并对intersect表中的句子表id进行分组。通过分组,您可以返回每个句子行中匹配的单词数,其中包含一个或多个匹配的单词。按该计数排序,您就得到了最匹配的句子


    这种方法不考虑顺序,拼写必须准确。你还必须考虑如何对待一个像“代码>”这样的句子。单词重复的地方。

    带有代码的完整答案要发布有点长,但我在处理人名的类似问题时使用的解决方案是,除了包含完整句子的表格之外,还要有一个单词表格。创建一个相交表格,在句子和单词之间进行多对多映射。添加句子时,您还可以将其拆分为单词,并更新单词表和intersect表

    给定一个要搜索的句子,您可以构造一个查询,其中包含一个where子句,如
    单词in(“I”、“want”、“to”
    …等,将其连接到intersect表,并对intersect表中的句子表id进行分组。通过分组,您可以返回每个句子行中匹配的单词数,其中包含一个或多个匹配的单词。按该计数排序,您就得到了最匹配的句子


    这种方法不考虑顺序,拼写必须准确。你还必须考虑如何对待一个像“代码>”这样的句子。单词重复的地方。

    我怎么做呢,因为我以前发现了一些关于全文索引的东西,但我不知道该怎么做。谢谢你的帮助feedback@user1901638我的错误-freetexttable是一个更好的函数-它将为您的搜索短语提供一个排名匹配我怎么能做到这一点,因为我在abo之前发现了一些东西ut全文索引,但我不知道该怎么做。谢谢你的好意feedback@user1901638我的错误-freetexttable是一个更好的函数-它将为您的搜索短语提供排名匹配。您还应该添加顺序是否重要。哪一个更接近匹配,“这是消息测试”或“这是虚假消息”?还有,拼写如何?哪一个更接近“这是一个测试表”或“这是一个测试?”(请注意,消息拼写不正确)。这一问题的答案和我之前的评论可能会对问题的解决方式产生很大的不同。您还应该添加顺序是否重要。哪一个更接近,“这是一个消息测试”或“这是一个消息测试”“这是一条虚假消息”?还有,拼写如何?哪一个更接近“这是一个测试表”或“这是一个测试”?(请注意,消息拼写不正确)。对这条消息的回答和我之前的评论会对您的问题的解决方式产生很大的影响。