サポートされている問合せパラメータ
このトピックでは、サポートされている問合せ演算子とそのオペランド構文、問合せパラメータの別名と属性、および問合せURIの例について説明します。
サポートされている演算子
この表は、サポートされている演算子、それぞれの式の例、サポートされるデータ型および説明を示しています。
オペレータ | 式の例 | オペランドでサポートされるデータ型 | 説明 |
---|---|---|---|
after | publishDate after '2011-11-01T06:00:00' |
整数、長、日付、DateTime、DateTimeZone | gt演算子はシノニムです。 |
および | reputationPoints lt 200 and dateAdded lt '2015-01-01' |
式または式の論理組合せ | 詳細は、「結合された式」の項を参照してください。 |
次の間にある | reputationPoints between 100 and 200 |
整数、長、日付、DateTime、DateTimeZone | ge_le演算子はシノニムです。 この演算子の場合、制限は包含的です。 この例では、[100,101,...,199,200]という結果になります。 |
前に | dateAdded before '2011-11-01' |
整数、長、日付、DateTime、DateTimeZone | lt演算子はシノニムです。 |
eq | adminUser eq true |
ブール、文字列、整数、長、日付、DateTime、DateTimeZone | 「次と等しい」と解釈されます。 |
ge | dateModified ge '2011-11-01T00:00:01PDT' |
整数、長、日付、DateTime、DateTimeZone | 「以上」と解釈されます。 onOrAfter演算子はシノニムです。 |
ge_le | reputationPoints ge_le 100 and 200 |
整数、長、日付、DateTime、DateTimeZone | 「次以上」または「次以下」と解釈されます。 between演算子はシノニムです。 この演算子の場合、制限は包含的です。 この例では、[100,101,...,199,200]という結果になります。 |
gt_le | reputationPoints gt_le 100 and 200 |
整数、長、日付、DateTime、DateTimeZone | 「次以上」と解釈されます。 この演算子では、下限は排他的ですが、上限は包含的です。 この例では、[101,102,...,199,200]という結果になります。 |
ge_lt | reputationPoints ge_lt 100 and 200 |
整数、長、日付、DateTime、DateTimeZone | 「次以上」および「次より小さい」と解釈されます。 この演算子では、下限は包含的ですが、上限は排他的です。 この例では、[100,101,..,198,199]という結果になります。 |
えぇー | publishDate gt '2011-11-01T06:00:00' |
整数、長、日付、DateTime、DateTimeZone | 「より大きい」と解釈されます。 after演算子はシノニムです。 |
gt_lt | reputationPoints gt_lt 100 and 200 |
整数、長、日付、DateTime、DateTimeZone | 「より大きい、より小さい」と解釈されます。 この演算子では、下限と上限の両方が排他的です。 この例では、[101,102,..,198,199]という結果になります。 |
in | categories.referenceKey in ('ASIA', 'EUROPE') |
文字列、整数、ロング | この演算子では、カッコでグループ化した複数の値がサポートされます。 |
inWithNoChildren | categories.referenceKey inWithNoChildren ('ASIA', 'EUROPE') |
文字列 | この演算子は、withNoChildren演算子の複数値バージョンです。 この演算子は、問合せパラメータrecordIdおよびreferenceKeyを持つカテゴリ・オブジェクトに対してのみサポートされています。 |
レ | reputationPoints le 100 |
整数、長、日付、DateTime、DateTimeZone | 「次以下」と解釈されます。 onOrBefore演算子はシノニムです。 |
likeAny | firstName likeAny ('Pete*', '*Pa*', 'Jo*n') |
文字列 | '%'はSQL文のワイルドカード文字であるため、ワイルドカード文字は'*'です。 この演算子を使用して、starts-with、ends-withおよびcontains文字列式を実現できます。 |
ライト | dateAdded lt '2011-11-01' |
整数、長、日付、DateTime、DateTimeZone | 「次より小さい」と解釈されます。 before演算子はシノニムです。 |
matchAll | categories.referenceKey matchAll ('ASIA', 'EUROPE') |
文字列 | この演算子は、属性recordIdおよびreferenceKeyを持つリソースとの対多関係を表す問合せパラメータでのみサポートされます。 |
matchAllWithNoChildren | categories.referenceKey matchAllWithNoChildren ('ASIA', 'EUROPE') |
文字列 | この演算子は、リソースからカテゴリ・オブジェクトへの多対多関係を表す問合せパラメータに対してのみサポートされ、属性recordIdおよびreferenceKeyでのみ使用できます。 |
onOrAfter | dateModified onOrAfter '2011-11-01T00:00:01PDT' |
日付、DateTime、DateTimeZone | ge演算子はシノニムです。 |
onOrBefore | dateModified onOrBefore '2011-11-01T00:00:01PDT' |
日付、DateTime、DateTimeZone | le演算子は同義語です。 |
または | reputationPoints lt 200 or dateAdded lt '2015-01-01' |
式または式の論理組合せ | 詳細は、「結合された式」の項を参照してください。 |
withNoChildren | categories.referenceKey withNoChildren 'EUROPE' |
文字列 | 「子どものいない」と解釈されます。 この演算子は、問合せパラメータrecordIdおよびreferenceKeyを持つカテゴリ・オブジェクトに対してのみサポートされています。 |
ノート:
ここで説明する特別な問合せ演算子は、このドキュメントで説明されているナレッジ管理REST APIにのみ有効です。サポートされていない演算子
この表は、問合せ式でサポートされていない演算子とその説明を示しています。
オペレータ | 説明 |
---|---|
リレーショナル | これには、次の記号が含まれます: <, >、=、==、!=、>=、<=、&および|。 次の演算子が代替としてサポートされています: lt, gt, eq, ge, le, and, or. |
NOT | これには、not、"ne" (not equal to)、pr" (present or is not null)が含まれます。 |
文字列 | これには、co (contains)、sw (starts with)、およびew (ends with)が含まれます。 演算子likeAnyはサポートされており、ワイルドカード文字を適切に配置して同じ結果になります。 |
SQL句 | 問合せはSQLのwhere句に似ていますが、SQLの実装ではないため、次の句はサポートされていません: JOIN、GROUP BY、FROM、WHEREなど。 |
オペランド構文
この表は、サポートされているオペランドのデータ型と構文の説明を示しています。
オペランド・データ型 | 構文の説明 |
---|---|
ブール・リテラル |
|
日付、DateTime、DateTimeZone |
|
Null値とNull文字列 |
|
数値(整数および長いリテラル) |
|
引用文字列 |
|
問合せパラメータの別名
この表は、問合せパラメータ、問合せパラメータの別名およびそれぞれの例を示しています。
問合せパラメータ | 別名 | 問合せパラメータの例 | 別名の例 |
recordId |
id |
recordId eq '2LKAJDFO8234OIJ3O24P18439837409819' |
id eq '2LKAJDFO8234OIJ3O24P18439837409819' |
referenceKey |
refKey |
referenceKey in ('FAQ', 'SOLUTIONS') |
refKey in ('FAQ', 'SOLUTIONS') |
問合せパラメータ属性
リソースとの関係を表す問合せパラメータには、式の第1レベルの属性のみを指定できます。 問合せパラメータ式には、最大1つのドット"."を使用できることに注意してください。 たとえば:
GET /content?q=lastModifier.firstName eq 'John' and lastModifier.lastName eq 'Smith'
関係問合せパラメータの属性を含む有効な式と無効な式を示すには、lastModifier属性を介してユーザー・オブジェクトとの関係を持つContentオブジェクトと、ロケール属性を介してLocaleオブジェクトとの関係を使用します。 また、Userオブジェクトには、contentLocales属性を介したLocaleオブジェクトとの関係があり、Localeオブジェクトにはlanguage属性を介したLanguageオブジェクトとの関係があります。
無効な問合せ
GET /content?q=lastModifier.contentLocales.localeCode in ('en_US', 'en_GB')
説明
無効な問合せでは、contentLocalesを経由してlocaleCodeでフィルタすることで、lastModifier問合せパラメータの2番目のレベル属性をトラバースしました。 問合せパラメータの第2レベル属性によるフィルタはサポートされていません。
有効な問合せ
GET /content?q=lastModifier.firstName eq 'John' and lastModifier.lastName eq 'Smith'
無効な問合せ
GET /content?q=locale.language.languageCode eq 'en'
説明
無効な問合せでは、ロケール問合せパラメータの第2レベル属性を、その言語を経由してlanguageCodeでフィルタしました。 問合せパラメータの第2レベル属性によるフィルタはサポートされていません。
有効な問合せ
GET /content?q=locale.localeCode in ('en_US', 'en_GB')
結合された式
1つ以上の式を結合するには、AND演算子とOR演算子を使用し、式をカッコでグループ化します。 複雑な式に関する問合せ解析ルールに注意してください。
および
1つ以上の式を論理演算子および演算子を使用して結合できます。
GET /content?q=dateModified gt '2014-01-01' and dateAdded after '2013-01-01' and categories.dateAdded after '2011-01-01'
or
1つ以上の式を論理演算子または演算子を使用して結合できます。
GET /content?q=dateModified gt '2014-01-01' or dateAdded after '2013-01-01' or categories.dateAdded after '2011-01-01'
グループ化
GET /content?q=(dateModified gt '2014-01-01' or dateAdded after '2013-01-01') and categories.dateAdded after '2011-01-01'
GET /content?q=(dateModified gt '2014-01-01' or dateAdded after '2013-01-01') and (categories.dateAdded after '2011-01-01' and categories.refKey in ('ASIA', 'EUROPE'))
経験則
-
ネストされたグループ式およびネストされた論理演算子を式内で使用することは避けてください。
無効な問合せ
GET /content?q=(categories.dateAdded after '2015-01-01' or (categories.refKey in ('EUROPE', 'ASIA') and categories.sortOrder gt 4)) and title likeAny ('*Oracle*')
説明
この問合せでは、カテゴリ問合せパラメータを使用する結合式に、サポートされていない式のサブグループ化が含まれています。
有効な問合せ
GET /content?q=(categories.dateAdded after '2015-01-01' and categories.refKey in ('EUROPE', 'ASIA') and categories.sortOrder gt 4) and title likeAny ('*Oracle*')
-
同じ問合せパラメータまたはリソースとの関係を表す問合せパラメータの同じ属性に複数のフィルタを適用することは避けてください。
無効な問合せ
GET /content?q=(categories.refKey eq 'EUROPE' and categories.refKey eq 'ASIA') and publishDate ge '2015-01-01' and publishDate le '2015-03-31'
説明
無効な問合せでは、カテゴリ問合せパラメータのrefKey属性が2つの式で使用されます。 また、publishDate問合せパラメータは2つの式でも使用されます。 式を最も単純な形式に減らす必要があります。
有効な問合せ
GET /content?q=categories.refKey matchAll ('EUROPE', 'ASIA') and publishDate between '2015-01-01' and '2015-03-31'
-
AND論理演算子とOR論理演算子の両方を、リソースとの関係を表す同じ問合せパラメータの属性に使用しないでください。
無効な問合せ
GET /content?q=lastModifier.dateAdded between '2014-01-01' and '2015-01-01' or lastModifier.login eq 'jsmith' and lastModifier.firstName eq 'John' or lastModifier.lastName eq 'Smith'
説明
この無効な問合せでは、lastModifier問合せパラメータの属性を使用する式が、サポートされていないAND論理演算子とOR論理演算子の両方を使用して結合されています。
有効な問合せ
GET /content?q=lastModifier.dateAdded between '2014-01-01' and '2015-01-01' or lastModifier.login eq 'jsmith' or lastModifier.firstName eq 'John' or lastModifier.lastName eq 'Smith'
-
リソースとの関係を表す同じ問合せパラメータですべての式をグループ化してみます。
無効な問合せ
GET /content?q=lastModifier.dateAdded between '2014-01-01' and '2015-01-01' and title likeAny ('*Oracle*') and lastModifier.login eq 'jsmith' or lastModifier.firstName eq 'John' or lastModifier.lastName eq 'Smith'
説明
この無効な問合せでは、lastModifier問合せパラメータの属性を使用して、表題問合せパラメータを使用する式が式間で結合されます。
有効な問合せ
GET /content?q=title likeAny ('*Oracle*') and (lastModifier.dateAdded between '2014-01-01' and '2015-01-01' or lastModifier.login eq 'jsmith' or lastModifier.firstName eq 'John' or lastModifier.lastName eq 'Smith')
問合せ解析ルール
-
AND演算子またはOR演算子のいずれかを使用して直接問合せパラメータを使用してすべての式を結合しますが、両方は使用しません。 直接問合せパラメータには、リソースとの関係を表す問合せパラメータの第1レベル属性は含まれません。
無効な問合せ
GET /content?q=((dateAdded ge "2014/10/01" and dateAdded le "2014/12/31") or (dateModified ge "2015/01/01" and dateModified le "2015/03/31")) and title likeAny '*Oracle*'
説明
この無効な問合せでは、グループ化されたdateAddedおよびdateModified問合せパラメータ式がOR演算子を使用して結合され、サポートされていないAND演算子を使用してタイトル問合せパラメータ式に結合されます。
有効な問合せ
GET /content?q=((dateAdded ge "2014/10/01" and dateAdded le "2014/12/31") and (dateModified ge "2015/01/01" and dateModified le "2015/03/31")) and title likeAny '*Oracle*'
-
リソースとの関係を表す問合せパラメータを使用するすべての式は、グループ化する必要があります。 また、リソースとの異なる関係を表す問合せパラメータのすべての式を、常にAND演算子を使用して結合する必要があります。
無効な問合せ
GET /content?q=(categories.refKey in ('EUROPE', 'ASIA') and contentType.refKey in ('FAQ', 'SOLUTIONS')) or (categories.refKey in ('NORTH_AMERICA', 'SOUTH_AMERICA') and contentType.refKey eq 'FAQ')
説明
この無効な問合せでは、カテゴリ問合せパラメータ式はグループ化されません。 同様に、contentType問合せパラメータ式はグループ化されません。 また、カテゴリおよびcontentType式は、AND演算子を使用して結合されません。
有効な問合せ
GET /content?q=categories.refKey in ('EUROPE', 'ASIA', 'NORTH_AMERICA', 'SOUTH_AMERICA') and contentType.refKey in ('FAQ', 'SOLUTIONS')
-
AND演算子またはOR演算子(両方ではなく)を使用して関係を表す問合せパラメータの第1レベル属性を使用して、すべての式を結合します。
無効な問合せ
GET /content?q=(lastModifier.dateAdded between '2014-01-01' and '2015-01-01' or lastModifier.login eq 'jsmith') and (lastModifier.firstName eq 'John' or lastModifier.lastName eq 'Smith')
説明
この無効な問合せでは、lastModifier問合せパラメータ式は、AND演算子およびOR演算子によって異なるグループで結合されます。
有効な問合せ
(lastModifier.dateAdded between '2014-01-01' and '2015-01-01' or lastModifier.login eq 'jsmith' or lastModifier.firstName eq 'John' or lastModifier.lastName eq 'Smith')
-
関係を表す特定の問合せパラメータのすべての一致演算子(matchAllまたはmatchAllWithNoChildren)を使用する最大1つの式を1つの問合せで使用できます。
無効な問合せ
GET /content?q=(categories.id matchAll ('2LKAJDFO8234OIJ3O24P18439837409819', 'AMPD2J43FO82DFS3ODSRF123PAKFJ29823', 'ZKDFJ34S023JF0SL2340ZLC01923MFIO1F') or categories.refKey matchAllWithNoChildren ('EUROPE', 'ASIA')) and userGroups.refKey matchAll ('SILVER','GOLD')
説明
この無効な問合せには、カテゴリ問合せパラメータのすべての一致演算子を使用する2つの式があります。
有効な問合せ
GET /content?q=categories.refKey matchAllWithNoChildren ('EUROPE', 'ASIA') and userGroups.refKey matchAll ('SILVER','GOLD')
-
contentStateリクエスト・パラメータは、問合せリクエストでは使用できません(これはコンテンツ・リソースにのみ適用されます)。 かわりに、コンテンツ・リソースに対してfilterMode.contentState問合せパラメータを使用して、その状態(PUBLISHED、LATESTまたはLATESTVALID)に従ってコンテンツをフィルタします。
招待リクエスト
GET /content?q=title likeAny ('*Oracle*')&contentState=PUBLISHED
説明
この無効なリクエストでは、contentStateリクエスト・パラメータは問合せリクエストではサポートされていません。 かわりに、問合せパラメータfilterMode.contentStateを使用します。
有効なリクエスト
GET /content?q=title likeAny ('*Oracle*') and filterMode.contentState eq 'PUBLISHED'