2011-01-27 3 views
3

@geodist検索では、パフォーマンスのためにあらゆる種類のジオスペースインデックス(Rツリーなど)を使用しますか?Sphinxで `@ geodist`ソート/検索がどのように実装されていますか?

アンカーが一定で、各ドキュメントのラジアン単位で格納されている独自の緯度/経度のペアがある場合は興味があります。

私はSphinxソースコードからそれを理解しようとしましたが、空間インデックスの言及が見つかりませんでした。地理空間検索に索引が使用されていない場合、パフォーマンスはどのように保証されますか?

キーワードが指定されていない場合、Sphinxはフルスキャンを行いますか?

背景:100万以上の短いエントリのデータセットがあります。新しく追加されたアイテムには緯度/経度が格納されるものがあります。数百万のエントリが毎日追加されます。私は、新しく追加されたエントリーの約5〜10%に位置情報があると予測します。

私たちの目標は、キーワード検索の有無にかかわらず、「アンカーポイントの周囲100メートルのすべてのエントリを取得する」、「アンカーポイントの周りに100個の最も近いエントリを取得する」などのクエリの位置対応エントリの空間検索を実装することです。

グーグルでは、パフォーマンスを確保するために人工グリッドベースのインデックスを使用することを示唆するthis forum threadが返されました。これは今の場合ですか?

+0

グレート質問スフィンクスフォーラムでこれを議論します。私自身このことを聞いてきた!次のカップルの日に#sphinxsearchの人にバグを投げて行き、うまくいけば、誰かが教育的な答えを提供できるようになるでしょう。 –

答えて

0

いいえ、スフィンクスは、任意の作り付けの地理空間インデックスはありません - フル - それは実際にはすべての行に対して、球状の距離計算を行いん:)

rudimentry地理空間のインデックスを作るためにタイルので、理由を(テーブルスキャン。属性はすべてメモリに保持されているので、その共振は速くなります。

チェックソース: http://codesearch.google.com/#vqMBzkK4ih0/src/sphinxexpr.cpp&exact_package=git://github.com/squadette/sphinxsearch.git&q=cos%20sphinxsearch&type=cs&l=1186

最近のスレッドが http://sphinxsearch.com/forum/view.html?id=8644

関連する問題