0

基本的には、「8月4日から8月7日まで」のように単純にフィルタリングできるシステムが必要ですが、「うるう年の各1月の第3土曜日または月曜日」のように複雑です。

複雑なブール代数を表現するには、ツリー構造が必要だと思いました。各ノードはブール演算(AND、OR、XOR、NOT)のいずれかであり、適用される子があります。これは、特定のフィルターまたは別のブール演算のいずれかです。

それぞれの「特定のフィルター」は、「日曜日」や「うるう年」のようなものになります。これまでのすべてが非常に実行可能だと思います。ただし、データベースクエリを実行してデータポイントを取得するために、ツリーを解析して実際に必要な日付を見つける際に問題が発生します。

上記の例(うるう年の各1月の第3土曜日または月曜日)で、データがある年(5年分)に事前に制限するとします。sat / monフィルターがツリーの最上位ノードである場合、500のセグメント化された日付(週に2つ、年に50週間、5年)になります。次に、次のノードは500個すべてを検索して、「3分の1」フィルターに準拠しているノードを見つける必要があります。これは最も複雑な例ではありません。任意の数のフィルターを許可する必要があり、XORはそれをさらにクレイジーにします。

それで、簡単なルートはありますか?誰かがすでにこれを構築しましたか?これはデータの視覚化を伴うプロジェクトのほんの一部ですが、それ自体がプロジェクト全体である可能性があります。

4

1 に答える 1

0

Rubyでカップルを見つけました。すべてのニーズをサポートするわけではありませんが、IceCubeは有望に思えます。

于 2012-08-07T06:57:01.190 に答える