asp.net mvc -如何用MongoDB实现关键字和位置搜索



我正在尝试实现一个网络/智能手机应用程序,允许用户搜索基于关键字和位置的地方,这是要求:

  • 用户可以通过输入关键词和位置进行搜索;位置可以是邮政编码,城市/州或当前位置从移动应用程序(晚和长)
  • 我们希望能够自定义相关性评分;我们需要能够根据关键字匹配、位置匹配和其他一些参数定义我们自己的关联算法。

我们使用ASP。. NET MVC作为我们的web开发框架,MongoDB作为数据存储。我们还在数据库中维护所有邮政编码和城市/州以及它们的质心(纬度/长度)的列表。我们的想法是用我们自己的算法覆盖全文系统提供的评分(比如Lucene评分)。我正在努力寻找解决这个问题的最佳方案。我想知道我们是否应该使用MongoDB全文搜索或尝试使用Lucene .NET或Solr?任何帮助/指针/评论总是赞赏!

所以作为起点,MongoDB不支持全文搜索。

它有一些正则表达式功能,你可以索引数组。所以你可以在这里做一些事情,比如建立一个关键字数组,使基本的文本搜索成为可能。

然而,这与Solr和Sphinx还有很长的路要走。

你会遇到的另一个大问题是相关性评分。用MongoDB执行任何类型的服务器端相关性评分都是非常困难的。没有真正有效的服务器端存储过程版本。您可能需要将结果拉到专门用于该评分的客户端或服务器。

最新更新