C# 使用spatial.net和lucene.net 2.9的搜索结果不一致

C# 使用spatial.net和lucene.net 2.9的搜索结果不一致,c#,search-engine,lucene.net,spatial,C#,Search Engine,Lucene.net,Spatial,你好 我目前正在使用c#、lucene.net和spatial.net为网站实现空间搜索功能 我遇到的问题如下: 我用以下位置索引5文档: 文件1:加利福尼亚州洛杉矶 文件2:加利福尼亚州帕萨迪纳 文件3:加利福尼亚州圣莫尼卡 文件4:加利福尼亚州萨克拉门托 文件5:丹佛公司 然后,我继续使用洛杉矶点作为原点,并将其作为数据的一部分,对结果索引(对于我的NUnit测试,我使用的是RAMDirectory)进行多次搜索 半径结果通过 10英里1是 20英里2不 25英里2不 50英里3是的 请注意

你好 我目前正在使用c#、lucene.net和spatial.net为网站实现空间搜索功能

我遇到的问题如下:

我用以下位置索引5文档:
文件1:加利福尼亚州洛杉矶
文件2:加利福尼亚州帕萨迪纳
文件3:加利福尼亚州圣莫尼卡
文件4:加利福尼亚州萨克拉门托
文件5:丹佛公司

然后,我继续使用洛杉矶点作为原点,并将其作为数据的一部分,对结果索引(对于我的NUnit测试,我使用的是RAMDirectory)进行多次搜索

半径结果通过
10英里1是
20英里2不
25英里2不
50英里3是的

请注意,从20英里搜索开始,我导出了3个结果。 其他一些半径值也会出现这种情况,例如,在3500英里处,我获取所有5个文档时,5000英里仅返回1个结果

有人知道spatial.net代码中可能导致此问题的错误吗?
lucene的.net版本是2.9.2,可能在以后的版本中已经解决了这个问题。任何帮助都将不胜感激,谢谢

我终于成功了。在lucene.net的当前版本中,spatial.net contrib模块上存在一个错误
在某些边缘情况下,此缺陷会导致搜索失败。该问题是由CartesianShapeFilter类引起的。 我所做的是从lucene的Java版本中获取源代码,只移植spatial contrib代码。
在每个类被移植之后,我将编译并再次运行我的测试。 最后我把范围缩小到这门课。

我希望这对某些人有所帮助,如果你想要这方面的代码,我将向lucene.net上的工作人员发送一个补丁,以便他们可以使用它。

你所做的更改,他们是否真的包含了上列出的错误修复?在德国的距离过滤合作中,我在Spatial.NET中遇到了这些bug。我不得不使用极高的里程数来获得一些结果。在补丁中描述的修复之后,即使使用非常小的盒子,它也能正常工作

谢谢你找到/修复了那个。您是否能够将固定代码贡献回项目中,我们正在努力发布2.9.4,如果能够发布,那将是非常棒的。我将在下个周末完成这项工作。由于某些原因,我发送给用户列表的电子邮件都被运行该列表的软件退回。对不起,我对此不负责,所以我不确定原因,我想你可能必须先加入该列表。谢谢你提交补丁。