2011-04-12 48 views
1

你好 我目前正在對使用C#,lucene.net和spatial.net不一致的搜索結果中使用spatial.net和lucene.net 2.9

我遇到的問題,實現空間搜索功能的網站在下面的:

I指數5文件與以下位置:
文獻1:洛杉磯,CA
文獻2:加利福尼亞州帕薩迪納
文獻3:聖莫尼卡,CA
文獻4:薩克拉門託CA
文獻5:科羅拉多州丹佛市

然後我繼續使用洛杉磯點作爲原點上運行所產生的索引幾個搜索(對於我使用RAMDirectory我的NUnit測試),以及具有它是部分數據。

半徑結果傳遞
10英里1個是
20平方英里沒有
25平方英里沒有
50英里3是

請注意,我expeted 3個結果與20哩搜索beginnig。 對於其他半徑值也會發生這種情況,例如5000英里只有3500英里時才返回1個結果,我獲得了所有5個文件。

是否有人知道可能導致此問題的spatial.net代碼中的錯誤? lucene的.net版本是在2.9.2,這也許已經在更高版本中解決了。任何幫助,將不勝感激,謝謝

回答

2

我終於得到了這個工作。在當前版本的lucene.net中的spatial.net contrib模塊上存在一個錯誤
此錯誤使得搜索在某些邊緣情況下失敗。該問題是由CartesianShapeFilter類引起的。 我所做的是從lucene的Java版本中獲取源代碼,並僅移植空間貢獻代碼。
在每個類都被移植之後,我會再編譯並運行我的測試。最後我把它縮小到這個班級。
我希望這可以幫助某人,如果你想要這個代碼,我會發送一個補丁給在lucene.net上工作的人,這樣可以使它可用。

+0

感謝您找到/修復那一個。您是否有能力將固定代碼返回給項目,我們正在致力於發佈2.9.4版本,這將非常棒。 – 2011-05-10 21:18:33

+0

這週末我會做。出於某種原因,我的電子郵件到用戶列表已全部由運行列表的軟件反彈。 – Gusa98 2011-05-17 07:07:01

+0

對不起,對此不負責,所以我不知道爲什麼,我想你可能不得不首先加入列表。感謝您提交修補程序。 – 2011-05-17 11:26:36

0

您所做的更改是否實際上包含在https://issues.apache.org/jira/browse/LUCENE-1930上列出的錯誤修正?我在德國境內的距離過濾協會期間遇到了Spatial.NET中的這些錯誤。我不得不使用極高的距離來獲得一些結果。在修補程序中描述的修復程序之後,即使使用非常小的盒子,它也能正常工作。