4

地図上でクラスター化する必要のある場所を含む検索を再実装しています。私は運がなくてSOLRの実装を探していました。

マップクラスタリングが実装された現在の検索は、http: //www.uship.com/findにあります。

誰かが似たようなものを見たことがありますか、またはこれを行うための最良の方法についてのアイデアを持っていますか?

よろしく、ニック

4

2 に答える 2

6

要件がかなり少数のポイント (おそらく 1000 未満) をクラスター化することである場合、Solr を使用する必要はありません。ポイントを取得し、 HeatmapJSなどを使用してプロットします。

要件はすべてをクラスター化することだと思います検索結果は、数千または数百万のドキュメントになる可能性があります。検索エリアのグリッド上で密度のヒートマップを生成することから始めることをお勧めします。これを行うには、各長さ (D2RY、D2R、D2、D など) で geohash 形式でエンコードされた各ポイントにインデックスを付けます。ただし、長さの前に、4_D2RY、3_D2R、2_D2、1_D のように長さを付けます。これらの小さな文字列は、Solr の多値の「文字列」型フィールドに入り、ファセットします。ファセットを作成するときは、適切なグリッド解像度 (例: goehash プレフィックス長) を考え出し、それを facet.prefix=4 のようなプレフィックス クエリとして使用します。LatLonType フィールドを個別に使用してポイントにインデックスを付け、標準のバウンディング ボックスを実行できます。そこに問い合わせます。この時点で、ファセット検索結果から、数字のグリッドに入力する情報が得られます。高速-- その場でそのようなヒート マップを生成できます。ただし、これは大量の値を持つ多値フィールドでファセットを行うため、かなりの量の RAM を使用します。これは、余分なメモリを必要とせず、簡単にする方法で、新しい Lucene 空間モジュール (またはおそらく Solr レイヤー) に追加したいものです。Solr 4.0 にはなりませんが、4.1 にはなるかもしれません。

この段階では、おそらくヒートマップはそのままで問題ありません。ただし、質問が述べているように、これに加えてクラスタリングを適用することもできます。誰かが、ヒートマップに適用できる興味深いジオ クラスタリング アルゴリズムを教えてくれました。

于 2012-07-04T02:35:53.727 に答える
1

lucidworks を検索したかどうかはわかりませんが、興味深いリソースがたくさんあります。

ポリゴンを使用した検索: Solr 地理空間検索の別のアプローチ

これらを調べてください:
http://www.lucidimagination.com/search/?q=geospatial#%2Fn

すでに Solr に実装されています:
http://wiki.apache.org/solr/SpatialSearch/ (このアプローチの何が問題なのですか?)
http://wiki.apache.org/solr/SpatialSearchDev
https://issues.apache.org/ジラ/ブラウズ/SOLR-3304

于 2012-07-04T07:27:50.730 に答える