Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 数据库中的单数和复数搜索_Sql_Sql Server 2008_Full Text Search - Fatal编程技术网

Sql 数据库中的单数和复数搜索

Sql 数据库中的单数和复数搜索,sql,sql-server-2008,full-text-search,Sql,Sql Server 2008,Full Text Search,我希望按照以下条件实现搜索: 搜索应根据多个关键字执行,例如关键字=人、猫、蝙蝠 搜索应该匹配关键字的单数和复数,若其中任何一个在数据库中可用,那个么该行应该在结果中可用 例如: Declare keyword varchar(max) = 'man,cat,bat' 要搜索的表: ID Name ----------- 1 man 2 men 3 cat 4 dog 5 bat 那么结果应该是 ID Name ----------- 1 man 2 men

我希望按照以下条件实现搜索:

  • 搜索应根据多个关键字执行,例如关键字=人、猫、蝙蝠

  • 搜索应该匹配关键字的单数和复数,若其中任何一个在数据库中可用,那个么该行应该在结果中可用

  • 例如:

    Declare keyword varchar(max) = 'man,cat,bat'
    
    要搜索的表:

    ID  Name
    -----------
    1   man
    2   men
    3   cat
    4   dog
    5   bat
    
    那么结果应该是

    ID  Name
    -----------
    1   man
    2   men
    3   cat
    5   bat
    

    我想在SQLServer2008中实现此搜索。请提出一些创新的建议。我认为这可以通过全文搜索来完成,但我不知道怎么做

    唯一的方法是建立一个复数词典。您可以从wiktionary.com获取数据

    有没有办法将sql server和全文搜索相结合?没有将单数英语单词转换为复数的通用规则,也没有sql命令可以执行此操作,只有一个命令包含每个英语单词及其复数对应词的列表(在不同的地方,像“绵羊”这样的词是它们自己的对应词)。我想这可以通过全文搜索来实现。我们都知道如何修改单词使其成为复数,但对于计算机来说,你必须把它们拼出来。大多数单词都加上“s”最后-猫=>猫,树=>树。然后是不规则的名词-人=>人,浆果=>浆果,土豆=>土豆,光环=>光环或光环,羊=>羊,章鱼=>章鱼或章鱼[章鱼在历史上是不正确的,因为章鱼是希腊语,而-i后缀是拉丁语…或者是另一种说法?]英语是一种不规则的语言,毫无意义。最简单准确的解决方法是查找表。