EQLの結果を使用したフォローオン問合せの作成

EQLの結果から値を選択し、その値を使用してフォローオン問合せを作成できます。

これにより、ユーザーがチャートやグラフを通して対話形式でEQLの結果を使用して、フォローオン問合せを作成できるようになります。たとえば、国別の年間売上累計を表すチャートを見ているユーザーは、特定の国を選択してドリルダウンすることがあります。

EQLは、この種のフォローオン問合せをサポートするように設計されています。

前述の例で、ユーザーが米国(United States)を選択した場合は、フォローオン問合せの対象は米国内の製品の売上のみになります。このようなアイテムをフィルタリングするには、次に示すWHERE句を追加します。

WHERE DimGeography_CountryRegionName = 'United States'

属性の型が文字列以外の場合は、EQLで返された値の文字列表現を使用するには変換が必要です。整数属性の場合は(たとえば、DimDate_CalendarYear)、フィルタリングを行うには、次に示すように値の文字列表現を整数に変換する必要があります。

WHERE DimDate_CalendarYear = TO_INTEGER('2006').

EQLでは、文字列以外のすべてのデータ型を変換できます。

これらはそれぞれ、Endeca Serverによって生成された値の文字列表現を受け入れます。mdex:string属性(これには管理対象属性も含まれる)には、変換は必要ありません。

どの変換関数を使用するかを特定するために、EQLの結果には属性メタデータが付属しています。これは、属性の型に加えて、管理対象属性の場合は関連付けられた階層も表します。

フィルタリングによる階層内の特定ノードの抽出

フィルタリングによって階層内の特定のノード(たとえばProductCategory)を抽出するには、一般的には特定の値またはその子のタグが付いたレコードを抽出します。たとえば、ユーザーがAccessoriesレベルにドリルダウンする場合に、Accessoriesのタグが付いたレコードのみを抽出しようとしても何も返されません。ただし、次のようにフィルタリングすると、
WHERE IS_DESCENDANT(ProductCategory, 'Accessories')

目的のフィルタリング結果が得られます。つまり、Accessoriesまたはその子のタグが付いたレコードのみが返されます。