0

PostgresデータベースにRailsアプリがあり、ユーザーが文字列を入力してデータベースで(都市内で)一致する可能性のあるアドレスを検索するための検索フィールドが必要です。データベースには、完全なアドレスを含む列があります。

入力を推測できないので、最初にデータベースの住所を直接検索してみて(LIKEクエリを使用しますか?)、それが失敗した場合は、ジオコーディングAPI(Googleなど)にリクエストする必要があると考えています。クエリに一致する適切にフォーマットされたアドレスリストを返し、データベース内のアドレスリストを検索します。

これを行う方法についてのガイダンスをいただければ幸いです。

4

2 に答える 2

1

FTS (全文検索) が必要だとは思いません。アドレスを照合できるアドレス API を使用する必要があります。

私は SmartyStreets をこのようなものにうまく簡単に使用しました。彼らはあなたが使用できる無料のアカウントを持っています. http://smartystreets.com

また、FTS ルートを試してみたい場合は、ここにその方法を説明する Gist があります。 https://gist.github.com/4365593

于 2013-01-14T06:44:50.787 に答える
0

You may know it already, but postresql has a fulltext search engine integrated so it's a great time to take advantage of it. I suggest watching thats excellent railscast.

Then once implemented :

class Place < AR
  def search_db_or_geokit(query)
    res = db_search()
    if res.empty?
      res = geokit_search(query)
    else
      res
    end
  end

  def geokit_search(query)
    # ...
  end

  def db_search(query)
    # ...
  end
end

For the geocoding google search api there's probably a good gem out there like geokit

于 2013-01-11T17:01:39.260 に答える