GTFS データを取得するために Public Transport アルゴリズムに Elasticsearch を実装しようとしていますが、必要なデータを取得するための「最良の」方法がわかりません (注: 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;
}
から、単純なリクエストでstop_id
対応するすべてを取得する方法をroute_id
考えています(ストップは複数のルートに属することができます)。
現在、私は2つのステップでそれをやろうとしていstop_id
ます.aは複数で一致する可能性がStopTimes
あり、複数trip_id
のsは単一に属します(私は8秒でroute_id
6kを持っています)。trip_id
route_id
一致したすべての
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
、トリップを取得しようとしましたが、続行する方法がよくわかりません (ファセット?)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)) );
助けてくれてありがとう :)