注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

foundryts.search.Search

class foundryts.search.Search

time seriesをオントロジーを用いて検索クエリを実行するためのインターフェース。

このインターフェースは、オントロジー内のプロパティを使用してtime seriesのコレクションを検索することを可能にします。検索をフィルター処理することで、検索に含めるオブジェクトを特定することができます。

これは、プログラムによるtime seriesへのアクセスが動的であり、オントロジーのプロパティ値に基づく場合に複数のtime seriesをクエリするのに役立ちます。以下の例を考えてみてください。

ユーザーのオントロジーにstockオブジェクトタイプがあり、プロパティとして[ticker, sector, exchange, price]が含まれています。「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"), # セクターが「Technology」である株を検索 ... object_types=["stock"], # オブジェクトタイプは「stock」に設定 ... property_type_id="price" # プロパティタイプは「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

このコードは、テクノロジーセクターに属する株式の価格データを検索し、それをPandasデータフレーム形式で表示しています。 同様に、特定の取引所の株式や、オブジェクトタイプの他の関連プロパティで検索することができます。

検索方法は、上記の例に示されているように、FoundryTS.search シングルトンプロパティを介してアクセスできます。

注意

検索は time series のリファレンスのみをクエリすることができ、time series 自体の値をクエリすることはできません(たとえば、値が条件を満たすシリーズやポイントを検索すること)。time series 内のデータを検索するには、dsl()time_series_search() を参照してください。

abstract series(query, max_results=10000, **kwargs)

渡されたクエリを使用して time series を検索し、すべての結果を含む NodeCollection を返します。

検索構文は、ontology() を使用して、オントロジー内のプロパティに対する等式を == 演算子で確認します。さらに、object_types を使用してオントロジー内の特定のオブジェクトタイプに検索範囲を限定することができます。オントロジー全体を検索することを避けるために推奨されます。

  • パラメーター:
    • query (Any) – 上記の演算子とオペランドで構成された検索クエリ。
    • max_results (int , optional) – 1 から 10,000 の範囲で返すシリーズ定義結果の最大数(デフォルトは 10,000)。
    • **kwargs – 追加の検索動作のためのオプションとフラグ。
  • キーワード引数:
    • object_types (List [str ] , optional) – クエリで検索する time series プロパティを持つオントロジーオブジェクト(デフォルトはすべての time series オブジェクトを検索)。
    • property_type_id (str , optional) – オブジェクト内で返す time series プロパティ。オブジェクトが複数の time series プロパティ(TSP)を含み、デフォルトの TSP が設定されていない場合に必要です。↗ デフォルトの TSP はプラットフォーム内の任意のオブジェクトに対して定義できます
    • experimental_enable_complex_properties (bool , optional) – Time Series Properties (TSPs) を time series バックエンドに送信するかどうか。このフラグは、↗ テンプレート などの非プリミティブな時間依存プロパティや、複数の time series 同期によってバックされる time series プロパティを使用する場合に必要です(このような time series は、↗ Qualified series ID としてオントロジーに書き込まれます)(デフォルトは False)。
  • 戻り値: 検索クエリに一致するすべての time series リファレンスを含む NodeCollectionFunctionNode として返します。
  • 戻り値の型: NodeCollection
注意

クエリで使用するプロパティ(ontology() を使用)の検索が可能であることを確認してください。そうでないと検索が失敗します。time series プロパティは検索可能ではありません。

非プリミティブな時間依存プロパティ(テンプレートやマルチシンクプロパティなど)を使用する場合、experimental_enable_complex_properties フラグが必要です。

Copied!
1 >>> fts = FoundryTS() # 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

このコードは fts.search.series メソッドを使用して、object_types に「stock-series」を指定して検索を行っています。その結果を pandas データフレーム形式で表示しています。データフレームには、series(シリーズ名)、timestamp(タイムスタンプ)、value(値)の列があります。

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
  • fts.search.series((search.ontology("ticker") == "SPX")) は、ティッカーシンボルが SPX のデータを検索しています。
  • .to_pandas() は結果を Pandas DataFrame に変換しています。
  • series 列はデータの種類(SPX_openSPX_close)を示し、timestamp 列はタイムスタンプ、value 列はその時点の値を示しています。
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

このコードは、fts.search.series を使用して、SPXというティッカーシンボルに関連する株価データを検索しています。experimental_enable_complex_properties=True を設定することで、複雑なプロパティを有効にしています。検索結果は、Pandasのデータフレーム形式に変換され、各行には series(シリーズ名)、timestamp(タイムスタンプ)、および value(値)が含まれます。