ホームページ >バックエンド開発 >PHPチュートリアル >solrおよびsolariumによる地理空間検索
この記事は、Apache Solr内の地理空間検索と、Solarium PHPライブラリとの相互作用を掘り下げています。 強力な検索サービスであるSolrは、ファセット検索や結果のハイライトなどの機能を提供します。 Solariumは、PHPアプリケーションでのSOLR統合を簡素化します。 この記事では、不動産や物流などのセクターの位置ベースのクエリに不可欠な地理空間検索機能に焦点を当てています。
location
の例アプリケーション:クラスを使用して追加され、緯度と経度はサブフィールド(タイプ)として追加されます。 対応するフィールド(例えば、)は、位置データを保存するために定義され、動的フィールドは緯度と経度の成分を処理します。 サンプルアプリケーションのリポジトリには、
の例が含まれています。 ロケーションデータの割り当て:ロケーションデータは形式で割り当てられます。 Solariumを使用して、これは次のように達成されます ソラリウムを使用した地理空間クエリ: Solariumのヘルパーがクエリの作成を簡素化します。 フィールド、緯度、経度、距離を指定して、 の例アプリケーション: 提供されたGithubリポジトリ(Brevityのためにリンク省略)には、openFlights.orgのデータを使用して近くの空港の地理空間検索を示すSilexおよびTwigベースのアプリケーションが含まれています。 データ母集団スクリプトも含まれています。 このアプリケーションには、ロケーション入力オプション(ジオロケーション、都市の選択、手動入力)と距離選択を備えた検索フォームがあります。検索結果には、空港の名前、都市、国、距離が表示されます。
結論:
(元のFAQセクションは、貴重な補足情報を提供するため、全体が保持されています。)
solrは地理空間データをどのように処理しますか?
ソラリウムの「ジオフィルト」フィルターと「Bbox」フィルターの違いは何ですか?
で距離でドキュメントを並べ替えるにはどうすればよいですか
solrでの地理空間検索のパフォーマンスを改善するにはどうすればよいですか?
solrで他の種類の検索で地理空間検索を使用できますか?
これらのFAQへの回答は元の入力に含まれており、簡潔にするためにここで繰り返されません。$helper->geofilt()
を使用して距離フィルターが追加されます。 geodist()
ヘルパーは距離を計算し、エイリアス(例えば_distance_
)は結果の距離を取得するのに役立ちます。 距離ごとのソートは、$query->setQuery('{!func}' . $helper->geodist(...))
および$query->addSort('score', 'asc');
。
以上がsolrおよびsolariumによる地理空間検索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。