QueryImplementingThingsOptimized サービスの使用
QueryImplementingThingsOptimized サービスを Thing Shape および Thing Template に対して呼び出すには、以下の JavaScript サービスを使用できます。
• QueryImplementingThingsOptimized
• QueryImplementingThingsOptimizedWithTotalCount
これらは
QueryImplementingThings サービスを呼び出すときと同じ方法で呼び出すことができます。詳細については、
QueryImplementingThings サービスの使用を参照してください。例:
ThingShapes["shape1"].QueryImplementingThingsOptimized。
WithTotalCount は、クエリーに適用されているアイテムの上限やオフセットは無視したうえで、行の総数と結果が格納されているインフォテーブルを返します。たとえば、maxItems を 5 に設定してクエリーした場合、5 つの行が返されますが、上限を適用する前に検出された行の総数は 100 になることもあります。
パラメータ
以下のパラメータが QueryImplementingThingsOptimized に適用されます。
• QueryImplementingThings のパラメータ:
◦ EntityReference parentEntity、
◦ int nMaxItems
◦ TagCollection tagsToCompare、
◦ String nameMask、
◦ Query query、
◦ boolean withData、
◦ boolean withPermissions、
◦ Collection<文字列> basicPropertyNames、
◦ Collection<文字列> propertyNames、
• QueryImplementingThingsOptimized の追加のパラメータ:
◦ networkName
フィルタを適用するネットワークの名前。クエリーはそのネットワーク内の Thing で見つかった結果のみを返します。
◦ networkParentNode
networkName で指定したネットワーク内の最上位ノードの名前。クエリーはそのネットワーク内の指定された親ノードのすべての子を返します。
◦ networkMaxDepth
親ノードの子を検索するレベル。1 は直接の子を返し、2 は子の子を返します。0 または default/null に設定されている場合、子の完全な階層を返します。
◦ offset
指定した値による結果のオフセット。たとえば、データベース内に 200 個の結果があり、オフセットが 5 に設定されている場合、5 から 200 までの結果 (合計 195) が返されます。
offset を maxItems と組み合わせることでページ付けをシミュレーションできます。クエリーで返される結果の数が多くなるほど、クエリー時間が長くなることがあります。
たとえば、Thing 1 から 1000 が存在し、maxItems が 5 の場合、各ページには結果が 5 つ表示されます。
▪ ページ 1: offset は 0。maxItems は 5 なので、最初の 5 つの結果が返されます。
▪ ページ 2: offset は 5。結果 6 から 10 が返されます。
▪ ページ 3: offset は 10。結果 11 から 15 が返されます。
▪ 以下同様。
この例では、返される結果の数が少ないので、クエリー時間は短くなります。
制限
QueryImplementingThingsOptimized サービスは、データベースではなくキャッシュをサーチし、以下の制限が適用されます。
• 指定された Thing Shape または Thing Template 上のプロパティだけを入力として指定できます。プロパティは propertyNames パラメータを使用して指定できます。プロパティが Thing には存在するが、指定された Thing Shape には存在しない場合、このサービスは例外を返します。
• パスワードタイプによるフィルタや並べ替えはできません。
• アクセス許可が理由でフィルタできないプロパティを持つ Thing は無視されます。フィルタされておらず、表示されないプロパティがリクエストされた場合、その Thing では Null として返されます。
たとえば、Thing1、Thing2、Thing3 が存在し、特定の Thing Shape のプロパティ prop1 に基づいてフィルタを適用しているとします。Thing1 では prop1 が表示されないので、その値がフィルタと一致する場合でも Thing1 は無視されます。Thing2 と Thing3 だけが返されます。
• 基本プロパティ homeMashup、Avatar、projectName、および isSystemObject に基づいたフィルタや並べ替えは許可されていません: