lucene.net を使用した地理位置情報検索の実装の検索で、leapinggorilla.com からこの記事に遭遇し、ソース コードをダウンロードしましたが、コンパイルに失敗しました。ナゲットを使用して参照を追加しましたが、まだ運がなく、オブジェクトを使用してアセンブリを参照すると、名前空間も見つかりません。
私が欠けているものへの提案はありますか?
ありがとう
lucene.net を使用した地理位置情報検索の実装の検索で、leapinggorilla.com からこの記事に遭遇し、ソース コードをダウンロードしましたが、コンパイルに失敗しました。ナゲットを使用して参照を追加しましたが、まだ運がなく、オブジェクトを使用してアセンブリを参照すると、名前空間も見つかりません。
私が欠けているものへの提案はありますか?
ありがとう
Lucene 3.x の空間モジュールにはバグがあり、保守されていないことが判明したため、Lucene 4.x では削除されています。Lucene 4.x には、私が他の 2 人と共同で開発した新しい空間モジュールがあります。ダウンロードした場合は、テストで「SpatialExample.java」を確認する必要があります (.net に相当するものがある可能性があります)。また、Lucene/Solr Revolution で私が行ったプレゼンテーションを見たり、スライドをめくったりすることもできます: http://www.lucenerevolution.org/2013/Lucene-Solr4-Spatial-Deep-Dive
特定の半径の円内で、(中心点からの)順序付けによる空間検索を可能にするLucene.NET 3.0.3 ソリューションがあります。
答えはStackOverflowにあり、完全な VS ソリューションはGitHubにあります。
空間検索を実行するコードの重要な部分は次のとおりです。
var spatialArgs = new SpatialArgs(SpatialOperation.Intersects, searchArea);
var spatialQuery = _strategy.MakeQuery(spatialArgs);
var valueSource = _strategy.MakeRecipDistanceValueSource(searchArea);
var valueSourceFilter = new ValueSourceFilter(new QueryWrapperFilter(spatialQuery), valueSource, 0, 1);
var filteredSpatial = new FilteredQuery(query, valueSourceFilter); // Restricts results to searchArea
var spatialRankingQuery = new FunctionQuery(valueSource); // Orders results by distance (closest first)
var bq = new BooleanQuery();
bq.Add(filteredSpatial,Occur.MUST);
bq.Add(spatialRankingQuery,Occur.MUST);
ご不明な点がございましたらお知らせください。興味のある方は、完全なソリューションをダウンロードして調べることをお勧めします。