フィルタリング、ランキング、重複排除

フィルタリング

式では比較、&|~is_null()is_in()を使用できます。Pythonの演算子優先順位が適用されるため、複数の式を組み合わせるときは各比較を括弧で囲んでください。

eligible = frame.filter(
    (cx.col("priority") >= 5)
    & cx.col("trust").is_in({cx.Trust.TRUSTED, cx.Trust.UNTRUSTED})
)

cx.now()は式を作成した時点のUTC時刻を1つ取得するため、その実行内の全行が同じ時点と比較されます。

ランキング

組み込みの字句ランカーは、テキストをcase-foldし、\w+に一致する語を抽出して、TextまたはJSONペイロードに含まれるクエリ内の異なる語の割合をスコアにします。埋め込み、言語モデル、語幹処理、ネットワーク呼び出しは使用しません。

rank()はレコードを並べ替えずに関連度を保存します。パッキングはpreferred(優先)とoptional(任意)の容量を割り当てる際にスコアを使い、選択した項目を元の会話順で返します。

意味的な関連度やドメイン固有の関連度が必要な場合は、プラグインの作成に示すバッチ対応のRankerプロトコルを実装してください。

完全一致による重複排除

dedupe()は、正規化されたcontent_hashが同一の項目をグループ化します。意味的な重複排除ではありません。

代表項目はcreated_atが最も古いもの、同値ならIDが辞書順で最小のものです。重複グループは保守的に統合されます。

フィールド

統合規則

sources

重複を除いた決定論的な順序

merged_from_ids

元のIDと以前に統合されたIDのすべて

parent_ids

和集合

trust

trustedよりuntrusteduntrustedよりquarantinedを優先

sensitivity

最も厳しい区分

retention

optionalよりpreferredpreferredよりrequiredを優先

expires_at

有効期限があるもののうち最も早い日時

priority

最大値

truncatable

すべての重複項目が切り詰め可能な場合のみTrue

min_tokens

最大値

メタデータの競合

代表項目の値を保持し、競合するすべての値をマニフェストへ記録

項目が1つだけのグループは変更されません。統合されたグループは最終的なPackManifest.dedupe_groupsへ追加されます。アンダースコアで始まる内部メタデータに依存せず、このマニフェストを使用してください。

表形式操作の完全なガイドはフレーム操作、監査の例は来歴とマニフェストを参照してください。