これがタスクです。文字列に町名が含まれているかどうかを認識する必要があります。別の言葉 - いくつかのテキストからの町の認識。
入力として、AND ジオコードに対して検索するテキストがあります。町のジオコード リストに応じて、データベースから読み込まれます。
現在の実装では、これらの町のリストをループして、短絡評価を使用して一致させようとします。お気に入り:
if (stripos($text, $currentTown) !== false &&
preg_match("#\b$currentTown\b#i", $text)) {
// add town to recognized list
}
そして問題は、たとえば、英国の町のリスト(約40 000)があることです。ループには「かなりの時間がかかります」。
だから私の質問は、認識時間を最適化する方法です。たぶん、配列に高度な検索がありますか?
どんなアイデアでも大歓迎です。
ありがとう。