我有一个有趣的问题需要帮助。我目前正在研究我的程序的一个功能并偶然发现了这个问题
我有一个巨大的印度尼西亚街道名称列表(> 100k 行)存储在数据库中,每个街道名称可能有超过 1 个单词。例如:“Sudirman”、“Gatot Subroto”或“Jalan Asia Afrika”都是合法的街道名称
在数据库中有一堆文本(> 100 万行),我将它们分成句子。现在,我需要做的功能(确切地说是功能)是测试句子中是否有街道名称,所以只是一个真/假测试
我试图通过执行以下步骤来解决它:
一个。将街道名称放入 Key,Value Hash
湾。将每个句子分成单词
C。测试单词是否在哈希中
这很快,但不适用于多个单词
我想到的另一种选择是执行以下步骤:
一个。将每个句子分成单词
湾。使用 LIKE 语句查询数据库(即 SELECT #### FROM street_table WHERE name like '%word%' )
C。如果查询返回一行,则表示该句子包含街道名称
现在,这个解决方案将是一个非常密集的 IO。
所以我的问题是“做这个测试最有效的方法是什么”?与编程语言无关。我主要在 python 中执行此操作,但只要我能掌握概念,任何语言都可以
============编辑1 =================
这会是定期的吗?
是的,我会以 1 分钟的间隔调用这个特性/功能。每个调用至少需要 100 行文本,并根据街道名称数据库对其进行测试