#模糊搜索 #城市 #模糊 #搜索 #拼写检查

city-spellcheck

city-spellcheck 是一个库,它通过考虑距离权重来提供城市名称的模糊搜索拼写修正。

2 个版本

0.1.1 2019年1月24日
0.1.0 2019年1月24日

#213地理空间

MIT 许可证

30KB
515

城市拼写检查

Build Status MIT licensed Released API docs

此crate提供了一个库,使用具有可选距离权重的模糊搜索评分系统对城市名称进行拼写修正。

这意味着如果您提供当前的GPS坐标,则建议的拼写修正结果在评分每个潜在匹配时会充分考虑您的当前位置。

目前仅支持美国和加拿大,正在尽快扩展到其他国家。

设置

要使用此库,只需将 city-spellcheck 添加到您的 Cargo.toml 文件中

[dependencies]
city-spellcheck = "0.1.0"

现在您可以使用了

use city_spellcheck::*;

要查看使用此库的非常简单的RESTful API(只有一个路由),请查看 City-Spellcheck Web Api

示例用例

use city_spellcheck::*;

let mut cities = CityData::new();
cities
    .populate_from_file("data/cities_canada-usa-filtered.csv")
    .unwrap();
let london = Coordinate::new(42.98339, -81.23304);

let results = cities.search("London", Some(london));
assert_eq!(
    format!("{:?}", results),
    "[FuzzyResult { city: \"London, ON, CA\", latitude: 42.98339, longitude: -81.23304, score: 1.0 }, FuzzyResult { city: \"London, OH, US\", latitude: 39.88645, longitude: -83.44825, score: 0.6252391 }, FuzzyResult { city: \"London, KY, US\", latitude: 37.12898, longitude: -84.08326, score: 0.6250727 }, FuzzyResult { city: \"Lemont, IL, US\", latitude: 41.67364, longitude: -88.00173, score: 0.52094036 }, FuzzyResult { city: \"Brant, ON, CA\", latitude: 43.1334, longitude: -80.34967, score: 0.5208334 }]");

请探索 文档 了解更多信息。几乎所有有用的方法都在 CityData 结构中。

依赖项

~8MB
~176K SLoC