我想找到一个快速算法,以便找到平面上给定点的x个最近点.
我们实际上处理的点数并不多(1000到100,000之间),但我需要每个点的x最近点.(其中x通常在5到20之间.)
我需要用C#编写它.
关于用例的更多上下文:这些点是地图上的坐标.(我知道,这意味着我们并不是在谈论一架飞机,但我希望避免处理投影问题.)最后有许多其他点靠近它们的点应该用红色显示,这些点没有太多靠近它们的点应显示为绿色.在这两个极端之间,点是颜色梯度.
我有一个位置索引,它有很多位置名称及其各自的国家/地区.
然后我想知道我们在国家代码为"DE"的国家/地区是否有标题为"Berlin"的地点.
这是我的Java代码尝试:
SearchResponse response = client.prepareSearch("locations")
.setQuery(QueryBuilders.matchQuery("title", "Berlin"))
.setFilter(FilterBuilders.termFilter("country", "DE"))
.execute()
.actionGet();
Run Code Online (Sandbox Code Playgroud)
但这给了我太多的答复,例如"柏林动物园"的结果等等.我需要完全匹配.
(但请注意,我还有其他需要此子字符串/文本搜索匹配的方案.)
有没有办法决定查询时间,而不是在索引时间指望哪个行为(精确与分析文本)?