1

名前にリンクされた住所データがたくさんあります。アドレスには複数の形式があります。例は次のとおりです。

  • 1 StreetName 通り、郡、町。
  • 1, StreetName 通り、郡、町。
  • Flat 1 BuildingName, 1 StreetName Street, Town.
  • フラット 1 BuildingName、StreetName Street、County、Town。
  • Flat 1, 1 StreetName Street, District, Town.
  • Flat 1, BuildingName, 1 StreetName Street, County, Town.

私は住所ごとに個別の(英国)郵便番号データを持っており、これらを正規化して、各「行」の内容が一致していなくても大文字と小文字が一致するようにしています。Street と St のような一貫性のない文言はまだ存在します。

これまでの私のアプローチは、合理的ではあるが限られた成功しか収めていません。郵便番号にインデックスを付け、ユーザーに郵便番号を選択するように強制しました。これにより、データが利用可能なより小さなチャンクに分割されます。その後、正規表現クエリ (現在は mongo を使用しています) を使用して住所を探し、通りの名前を探します。

ただし、これまでのところ正規化しかできない一貫性のない表現 (例: データベース レベルでクエリまたは正規化するときにユーザー クエリから "High (Street|St)" を生成する) のため、これは非常に正確でも高速でもありませんでした。

私はそれがかなりオープンな質問であることを理解していますが、人々はそれが検索可能になったり、さらに正規化されたりすることをどのように提案しますか? 検索で強制しなければならない制限には、名前で検索できないこと、個々の街路/道路に絞り込まれるまで人に解決しないことが含まれます (一部の住所には街路/道路情報がないことに注意してください!)。多くのデータは過去のものであるため、Google などで検索することは実際にはオプションではないことに注意してください。

4

0 に答える 0