Sql 基于查找表的字符串搜索

Sql 基于查找表的字符串搜索,sql,Sql,我有一个包含关键字的查找表,如45街、hush creek和gang。我需要在叙述表的叙述栏中找到这些单词,并且输出需要是一个单独的表。单独的表格需要有完整的叙述、识别记录/编号以及叙述所涉及的关键词。这两张桌子之间没有任何联系。叙述表有超过2.3亿行。我如何高效地完成这项工作?多谢各位 第一个表(查找表): 数据示例: 41 Boyz 1 percenter gang 0.01 gang 1000 blk boys 1000 blk boyz 1000 blk crew 1000

我有一个包含关键字的查找表,如45街、hush creek和gang。我需要在叙述表的叙述栏中找到这些单词,并且输出需要是一个单独的表。单独的表格需要有完整的叙述、识别记录/编号以及叙述所涉及的关键词。这两张桌子之间没有任何联系。叙述表有超过2.3亿行。我如何高效地完成这项工作?多谢各位

第一个表(查找表):

数据示例:

41 Boyz 
1 percenter gang 
0.01 gang 
1000 blk boys 
1000 blk boyz 
1000 blk crew 
1000 blk SMT 
第二张表(叙述表):

我需要找到叙述表记录,其中叙述栏的内容与查找表中的单词相匹配。结果应该在第三个表中,并且应该包含IncidentID、叙事(均来自表2)和Name1(来自表1-查找表)。查找词可以在叙述字段中的任何位置找到

产出将是:

Incident ID: 123145

Narrative: The officer came to the location of the 0.01 gang and met with the suspect.

Name1: 0.01 gang
情况如下:

  • 你有2.3亿行
  • 您正在查找文章中的多个单词,可以是任意顺序的字母大小写的,甚至是缩写的
  • 您可能希望在合理的时间内找到匹配项。越快越好。这是在线查询吗
  • 如果没有完全匹配,您可能需要查找部分匹配
  • 您可能希望对匹配项进行排序,这取决于单词之间的距离,以及它们是否按顺序显示。可能检查小写/大写字母、缩写等
此时,您需要使用“全文搜索”解决方案。我通常推荐PostgreSQL数据库,因为它的功能是完全免费的

你需要尝试几个例子,你会很快得到这个想法。简言之,这些步骤是:

  • 插入文本叙述
  • 执行叙述的索引。可能需要几分钟或几个小时,具体取决于数据的大小
  • 然后进行多次搜索,生成快速(可能是排名)的结果

  • 稍后,如果您更新叙述,可能需要对新的/修改的条目进行增量索引。这应该更快。

    您好,请发布每个表的表结构。具体的数据库是什么?答案可能很大程度上取决于哪一个。请添加一个小例子和预期结果。几行就行了。你的数据库支持全文搜索吗?不。如果有帮助的话,我添加了更多的信息。你的情况是正确的。感谢您提供的详细信息和建议。
    IncidentID: float
    Narrative: varchar(max)
    
    Incident ID: 123145
    
    Narrative: The officer came to the location of the 0.01 gang and met with the suspect.
    
    Name1: 0.01 gang