注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
オントロジーを使用して時系列に対する検索クエリを実行するためのインターフェースです。
このインターフェースでは、オントロジーのプロパティを使用して時系列を検索できます。詳細なフィルターで検索を絞り込み、検索に含めるオブジェクトを指定できます。
時系列へのプログラムによるアクセスが動的で、オントロジーのプロパティ値に基づいている場合に、複数の時系列をクエリするのに役立ちます。以下の例をご覧ください。
オントロジーに、プロパティ [ticker, sector, exchange, price] を持つ stock オブジェクトタイプがあるとします。
「Technology」セクターのすべての株式の価格を取得するには、Search.series() で次のクエリを使用できます。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20>>> fts = FoundryTS() >>> tech_stocks_price = fts.search.series( ... query=(ontology("sector") == "Technology"), ... object_types=["stock"], ... property_type_id="price" ... ) >>> tech_stocks_price.to_pandas() series timestamp value 0 stock-A 2023-01-01 00:00:00.000 150.75 1 stock-A 2023-01-02 00:00:00.000 152.30 2 stock-A 2023-01-03 00:00:00.000 148.90 3 stock-B 2023-01-01 00:00:00.000 200.50 4 stock-B 2023-01-02 00:00:00.000 202.75 5 stock-B 2023-01-03 00:00:00.000 198.40 6 stock-C 2023-01-01 00:00:00.000 120.10 7 stock-C 2023-01-02 00:00:00.000 118.95 8 stock-C 2023-01-03 00:00:00.000 121.70 9 stock-D 2023-01-01 00:00:00.000 310.20 10 stock-D 2023-01-02 00:00:00.000 312.50 11 stock-D 2023-01-03 00:00:00.000 308.90
同様に、特定の取引所の株式を検索したり、オブジェクトタイプのほかの関連プロパティを使用して検索したりできます。
上記の例に示すように、検索メソッドには FoundryTS.search シングルトンプロパティを介してアクセスできます。
Search では時系列への参照のみをクエリでき、時系列自体に含まれる値はクエリできません(たとえば、値が述語を満たす時系列やポイントを検索することはできません)。時系列内のデータを検索するには、dsl() と time_series_search() を参照してください。
渡されたクエリを使用して時系列を検索し、すべての結果を含む NodeCollection を返します。
検索構文では、ontology() を使用し、== 演算子でオントロジーのプロパティとの等価性を確認します。また、object_types を使用して、検索対象をオントロジー内の特定のオブジェクトタイプに限定できます。オントロジー全体を検索しないように、この方法を推奨します。
FunctionNode として含む NodeCollection。NodeCollectionクエリで(ontology() を使用して)指定するプロパティが検索可能であることを確認してください。そうでない場合、検索に失敗します。時系列プロパティは検索できません。
テンプレートや複数の同期に基づくプロパティなど、非プリミティブな時間依存プロパティを使用する場合は、experimental_enable_complex_properties フラグが必須です。
Copied!1>>> fts = FoundryTS()
Copied!1 2 3 4 5 6 7 8 9>>> tsp_search_without_query = fts.search.series(object_types=["stock-series"]) >>> tsp_search_without_query.to_pandas() series timestamp value 0 SPX_open 1970-01-01 00:00:00.000 1.5 1 SPX_open 1970-01-01 00:00:00.001 2.5 2 SPX_open 1970-01-01 00:00:00.004 3.5 3 ZVZZT_open 1970-01-01 00:00:00.000 2.5 4 ZVZZT_open 1970-01-01 00:00:00.001 3.5 5 ZVZZT_open 1970-01-01 00:00:00.004 4.5
Copied!1 2 3 4 5 6 7 8 9>>> tsp_search = fts.search.series((search.ontology("ticker") == "SPX")) >>> tsp_search.to_pandas() series timestamp value 0 SPX_open 1970-01-01 00:00:00.000 1.5 1 SPX_open 1970-01-01 00:00:00.001 2.5 2 SPX_open 1970-01-01 00:00:00.004 3.5 3 SPX_close 1970-01-01 00:00:00.005 15.0 4 SPX_close 1970-01-01 00:00:00.006 25.0 5 SPX_close 1970-01-01 00:00:00.007 35.0
Copied!1 2 3 4 5 6 7 8 9 10>>> tsp_search_with_experimental_properties = fts.search.series( ... (search.ontology("ticker") == "SPX"), ... object_types=["stock-series"], ... experimental_enable_complex_properties=True, ... ) >>> tsp_search_with_experimental_properties.to_pandas() series timestamp value 0 stock-series:SPX:open_price 1970-01-01 00:00:00.000 1.5 1 stock-series:SPX:open_price 1970-01-01 00:00:00.001 2.5 2 stock-series:SPX:open_price 1970-01-01 00:00:00.004 3.5