【发布时间】:2018-09-16 21:22:21
【问题描述】:
我有一个像这样的对象:
[SerializePropertyNamesAsCamelCase]
public class Location
{
[Key]
public string Id { get; set; }
[IsFilterable, IsSortable]
public GeographyPoint GeographyPoint { get; set; }
}
我想做的是检索 10 KM 内的所有位置并按距离排序,因此最接近的显示优先。最后,我想知道那个距离是多少。
这是我尝试过的:
var index = GetIndex();
var parameters = new SearchParameters
{
Skip = 0,
Top = 20,
Filter = "geo.distance(geographyPoint, geography'POINT(-122.131577 47.678581)') le 10 "
};
var results = index.Documents.Search<Location>("*", parameters);
上面的问题是它没有告诉我距离,也没有按它排序。
我想知道如何完成上述操作?我是否必须在 Location 对象中创建一个 double Distance 属性,如果是这样,那么我如何填充它以便我可以按它搜索、按它排序然后检索它?
【问题讨论】:
标签: c# asp.net-mvc azure asp.net-core-mvc azure-cognitive-search