【问题标题】:How do you implement search functionality using location information in ASP.NET?如何在 ASP.NET 中使用位置信息实现搜索功能?
【发布时间】:2008-10-29 06:38:11
【问题描述】:

我目前正在研究使用 Lucene.NET 来支持我正在开发的 Web 应用程序上的搜索功能。但是,我正在实现的搜索功能不仅需要进行全文搜索,还需要根据与指定地址的接近程度对结果进行排名。

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

【问题讨论】:

    标签: asp.net search lucene.net


    【解决方案1】:

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

    如果我没记错的话,在 lucene in action book 中有一个距离相关算法的示例。它适用于 java lucene,但 api 是相同的,您可以轻松转换为 c# 或 vb.net

    【讨论】:

      【解决方案2】:

      您要查找的内容称为空间搜索。我不确定 Lucene.Net 是否有扩展来执行此操作,但您可以查看 NHibernate Spatial。除此之外,这些查询通常在数据库中完成。至少 PostGreSQL、MySQL 和 SQL Server 2008 具备空间查询能力。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-11-05
          • 1970-01-01
          • 2021-01-09
          • 2015-09-24
          • 2021-01-08
          • 2022-07-07
          • 2021-12-28
          • 1970-01-01
          相关资源
          最近更新 更多