这是任务。我需要识别一个字符串是否包含某个城镇名称。另一个词 - 从一些文本中识别一个城镇。
作为输入,我有文本要搜索 AND 地理编码。根据从 db 加载的城镇地理编码列表。
现在,当前的实现是遍历这些城镇的列表,并尝试使用短路评估来匹配它。喜欢:
if (stripos($text, $currentTown) !== false &&
preg_match("#\b$currentTown\b#i", $text)) {
// add town to recognized list
}
问题是我有例如英国的城镇列表(大约 40 000),循环将花费“相当长的时间”。
所以我的问题是如何优化识别时间。也许数组中有一些高级搜索?
欢迎任何想法。
谢谢。