我正在尝试在我的公共交通算法中实现 Elasticsearch 以获取 GTFS 数据,但不知道获取所需数据的“最佳”方式是什么(注意:我在 C# 中使用 NEST)。
我已经索引了 2 个类:
public class StopTimes : IGTFS
{
public string trip_id;
public string arrival_time;
public string departure_time;
public string stop_id;
public string stop_sequence;
public string stop_headsign;
public string shape_dist_traveled;
}
public class Trips : IGTFS
{
public string route_id;
public string service_id;
public string trip_id;
public string trip_head_sign;
public string trip_short_name;
public string direction_id;
public string shape_id;
}
我想知道如何从 astop_id
中获取所有相应的route_id
的信息(一个停靠点可以属于几条路线)。
目前,我正在尝试分两步完成,因为我知道 astop_id
可以在几个中匹配,StopTimes
并且几个trip_id
s 属于一个route_id
(我有 6k trip_id
s 用于 8 route_id
s)。
我正在获得匹配的所有
StopTimes
(超过 2k 次点击)数据stop_id
。var result = _client.Search(s => s .Index("gtfs_data") .Type("stoptimes") .Fields("trip_id") .Query(q => q .Term("stop_id", id)).Size(10000000) );
然后我尝试进入
route_id
Trips 但我真的不知道如何进行(方面?)var result2 = _client.Search<Trips>(s => s .Index(_ratpData) .Query(q => q .Terms(t => t.trip_id, terms)) //terms = array of stop_id .FacetTerm(t=>t .OnField(f=>f.route_id).Size(10000000)) );
谢谢您的帮助 :)