【发布时间】:2009-06-23 06:19:41
【问题描述】:
我正在使用 Lucene 作为一个使用 .net 的求职门户。 在以下用例中,我面临一些与性能相关的问题。 用例是: 在进行求职时,用户可以选择工作地点(例如:亚特兰大,GA)并选择径向距离(例如 50 英里)。从 Lucene 返回求职结果所需的时间相当长。
仅供参考,我们正在维护一个 sql server 2005 数据库,我们在其中存储美国和加拿大的城市、州、经度和纬度。(总共包含大约 100 万条记录)。
有没有我可以提高这个基于位置的求职的性能?
【问题讨论】:
-
您能否详细说明您是如何使用 Lucene 对您的数据库进行基于位置的搜索?例如,当用户搜索“亚特兰大,乔治亚州”时,Lucene 如何知道其 50 英里范围内有哪些城市?是不是一定要先查询数据库?
-
感谢您的 cmets。我们有一个基于 .Net 的距离 API,它将位置作为输入并返回给定半径内最近的城市。然后将此集合提供给 Lucene 用于搜索工作。
-
那么您是否在 Lucene 索引中搜索字符串“Atlanta, GA”?你在索引什么?您是否将“亚特兰大,乔治亚州”作为一个术语进行索引,还是将其拆分为多个标记?
-
我在 Lucene 索引中的一个名为“city”的字段中索引 Atlanta,在“state”中索引 GA。
-
你的 Lucene 索引有多大?只是索引美国和加拿大的每个城市和州。将是一个非常小的索引,应该快如闪电。您使用什么类型的查询来查找正确的城市?
标签: lucene lucene.net