EQLレコード・フィルタでは、合計レコード・セットの任意のサブセットを定義し、検索とナビゲーションの結果をこれらのサブセットに動的に制限できます。
<Request> <State> <DataSourceFilterString>PROD_CATEGORY = 'Hardware'</DataSourceFilterString> <SelectionFilterString>AMOUNT_SOLD > 1000</SelectionFilterString> </State>...</Request>
EQLの使用可能な演算子と関数の詳細は、後続のトピックにリストします。
DataSourceFilterStringコンポーネントは、他の処理を行う前にレコードのコーパスをフィルタします。つまり、このフィルタが最初に適用され、問合せで表示可能な大量のデータを削減します。これは、フィルタされたレコードはスペル修正に貢献せず、EQLでAllBaseRecordsの一部として利用できないことを示します。
DataSourceFilterStringは、検索可能なレコードを、Dgraphの合計レコードの指定したサブセットに限定するため、表示が許可されないレコードをユーザーが取得できないようにするセキュリティ・フィルタとして使用できます。EQL用語では、AllBaseRecordsは、DataSourceFilterStringフィルタを渡すレコードに相当します。
大量のレコードがDataSourceFilterStringで絞り込まれると、追加のアプリケーションレベルのフィルタにSelectionFilterStringコンポーネントが使用されます。これは、最終レコード結果セットの基準を指定します。返される結果は、問合せで指定されるすべてのフィルタに一致するレコードになります。
SelectionFilterStringは、データが絞込みの計算に使用できるかどうかも判断します。NavStateRecordsは、すべてのフィルタ(SelectionFilterStringを含む)を渡すレコードに相当します。
You may not have more than one DataSourceFilter across State and Operators You may not have more than one SelectionFilter across State and Operators
この場合、ANDまたはOR演算子で無関係なフィルタを削除したりフィルタを再作成して、フィルタに複数の条件を指定できます。
EQLレコード・フィルタを有効にするために必要なDgraphプロセス構成フラグはありません。