2011-10-20 19 views
2

私は現在、私が取り組んでいる小さなウェブサイトの検索アルゴリズムを使用しています。今私の問題は、十分な柔軟性がないということです。私の雇用主は、都市内でも検索できるように検索をより柔軟にしたいと考えています。検索文字列内の都市を検出する

現在、ほとんどの検索が機能していますが、私はこの都市のことに固執しています。私がしたいのは、検索文字列内で都市名を見つけ、都市IDをデータベースから取得し、実際に検出された文字列が実際に都市である場合、特定の検索を行うために元の検索文字列から都市名を削除する必要がありますタイトルの後に続く。

例:私は次の検索文字列 "chiropractor copenhagen c"を持っていれば、 "copenhagen c"の部分を見つけて、この都市の市区町村IDを取得し、それを残りの検索から除外して、 "カイロプラクター"を検索してください。

私が探していることを理解していただければ幸いです。事実に起因

おかげ

+1

これは難しい問題です。何が出てくるのか興味があります。あなたはこれのためにPHP/mySQLを越えることができますか?つまり、サーバーに新しいソフトウェアをインストールしますか? –

答えて

1

まあ、検索文字列内のすべてのものがあるかもしれない、あなたは、データベース内の都市のリストを必要とし、検索文字列自体のものを見つけるだろう。たとえそれが実際の都市であったとしても、それはデータベースには存在しないので、そこには存在しないということを意味します。しかし、類似のものを見つけることができれば、それを検索文字列から削除して、データベースの都市の詳細を取得することができます。

+0

彼はdbからcity-idを取得したいと考えています。都市のリストがあります。彼はIDを望んでいるので、それはデータベースにない場合、都市は本当に重要ではないと思う。 – Flo

+0

まさしく私が言ったこと。市のリストに都市が見つからなければ、それは検索文字列にとどまることができます。 –

+0

私は最初に私の検索文字列の個々の単語を都市データベースに比較することによってそれを働かせました。データベース内で最も一致するものが都市検索用に保持され、見つかった文字列が元の検索文字列から削除されます。以前と同じように検索してから、最後の検索文字列に都市チェックを追加することができます。魅力のように動作します。 – Simon

0

都市名を最初に知っていないので、すべての都市名とIDをデータベースから配列に読み込むことをお勧めします。次に、配列をループスルーし、検索文字列内のcitynameを探します。見つけた場合は、名前とIDを持っているので、クエリに追加することができます。都市の名前があるので、検索文字列の ""に置き換えることができます。

関連する問題