1,實現思路:
此方法沒有建立索引,只能指定一個字段進行查詢,不能同時匹配多個字段。
2,實現代碼:
Workspace workspace = new Workspace();
// 定義數據源連接信息,假設以下所有數據源設置都存在
DatasourceConnectionInfo datasourceconnection = new
DatasourceConnectionInfo("D:/dic-data/hp.udb", "hp", "");
Datasource datasource = workspace.getDatasources().open(datasourceconnection);
DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(0);
AddressMatchSetting addressMatchSetting = new AddressMatchSetting();
addressMatchSetting.addSearchData(dataset, "name");
addressMatchSetting.setDictionaryFile("D:/dic-data/addressMatchDictionary.dct");
AddressMatch addressMatch = new AddressMatch();
addressMatch.setSetting(addressMatchSetting);
addressMatch.load();
AddressMatchParameter addressMatchParameter = new AddressMatchParameter();
addressMatchParameter.setResultCount(10);
addressMatchParameter.setSearchAddress("小張食品店");
addressMatchParameter.setLocationReturn(true);
AddressMatchResults addressMatchResults = addressMatch.match(addressMatchParameter);
int count = addressMatchResults.getCount();
System.out.println("總共:" + count);
for(int i = 0; i < count; i++){
System.out.println(addressMatchResults.get(i).getLocation());
System.out.println(addressMatchResults.get(i).getAddress());
System.out.println(addressMatchResults.get(i).getScore());
if(i == 0)
break;
}
返回結果:
總共:10
{X=121.488500174773,Y=31.2112327037134}
小張食品店
100.0