繁体   English   中英

您如何使用 ASP.NET 中的位置信息实现搜索功能?

[英]How do you implement search functionality using location information in ASP.NET?

我目前正在考虑使用 Lucene.NET 为我正在开发的 Web 应用程序提供搜索功能。 但是,我正在实现的搜索功能不仅需要进行全文搜索,还需要按与指定地址的接近程度对结果进行排名。

Lucene.NET 可以处理这个需求吗? 或者我是否需要先实现某种方式将点击分组到不同的位置(例如,小于 5 英里、小于 10 英里等),然后使用 Lucene.NET 对这些组中的项目进行排名? 还是有一种完全不同的方式让我俯瞰?

您可以实现自定义评分器以按距离顺序对结果进行排序,但您必须先过滤结果才能高效。 您可以使用边界框方法,在您地址周围 20 英里的正方形中过滤结果,然后应用排名。

如果我没记错的话,在 lucene in action book 中有一个距离相关算法的例子。 它是针对java lucene的,但是api是一样的,你可以很容易地翻译成c#或vb.net

您正在寻找的称为空间搜索。 我不确定是否有 Lucene.Net 的扩展来做到这一点,但你可以看看NHibernate Spatial 除此之外,这些查询通常在数据库中完成。 至少 PostGreSQL、MySQL 和 SQL Server 2008 具有空间查询功能。

经过一些额外的研究,我想我可能已经找到了答案。 我将使用 Lucene.NET 按其他因素过滤搜索结果,然后使用来自 Google 或 Yahoo 的地理编码信息按距离对结果进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM