我试图根据用户输入类型文本搜索一个SQL Server 2008表(包含大约700万条记录),用于引用和国家。我从用户那里得到的搜索字符串可以是任何类似的东西:如何根据用户搜索查找城市和国家?
“旧金山,美国的酒店”或“纽约,纽约”或“巴黎sddgdfgxx”或“多伦多加拿大”的术语不会被逗号隔开而不是按照特定的顺序,并且可能存在无用的数据。
这是我的尝试:
方法1:FTS有载: 例如:SELECT * FROM其中包含cityNames(城市名, '字词1和字词2') - 有和 SELECT * FROM其中包含cityNames (cityname,'word1 or word2') - 与或
这并没有很好地工作,因为像'sddgdfgxx'这样的术语在与'AND'一起使用时不会返回任何内容。方法2:这实际上是一个反向搜索,它的逻辑是搜索用户是否输入了字符串包含我桌子上的任何城市或国家。通过这种方式,我肯定会知道'艾克斯普罗旺斯'或'纽约'被搜索到。
例如:从cityCountryNames选择*,其中“加拿大安大略省,多伦多就像cityCountryNames
笔记:我是不是能够得到结果两个字城市和查询缓慢。
任何帮助表示赞赏。
使用某些地理编码API具有查询限制,有些甚至禁止用于商业用途。所以一定要阅读印刷精美的 – Mikos 2010-09-23 22:46:13
@Mikos - 这当然是一个好主意。如果您要在地图上显示地理编码点,Google允许使用其地理编码API。看起来Bing可能有更严格的使用条款。 – 2010-09-24 17:58:15