フィルタリング、ランキング、重複排除¶
フィルタリング¶
式では比較、&、|、~、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が辞書順で最小のものです。重複グループは保守的に統合されます。
フィールド |
統合規則 |
|---|---|
|
重複を除いた決定論的な順序 |
|
元のIDと以前に統合されたIDのすべて |
|
和集合 |
|
|
|
最も厳しい区分 |
|
|
|
有効期限があるもののうち最も早い日時 |
|
最大値 |
|
すべての重複項目が切り詰め可能な場合のみTrue |
|
最大値 |
メタデータの競合 |
代表項目の値を保持し、競合するすべての値をマニフェストへ記録 |
項目が1つだけのグループは変更されません。統合されたグループは最終的なPackManifest.dedupe_groupsへ追加されます。アンダースコアで始まる内部メタデータに依存せず、このマニフェストを使用してください。