機械翻訳について

サポートされている問合せパラメータ

このトピックでは、サポートされている問合せ演算子とそのオペランド構文、問合せパラメータの別名と属性、および問合せ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など。

オペランド構文

この表は、サポートされているオペランドのデータ型と構文の説明を示しています。

オペランド・データ型 構文の説明
ブール・リテラル
  • ブール値は、常にtrueキーワードまたはfalseキーワードである必要があります。
  • 'true'や'false'などの引用符付き文字列は許可されません。
日付、DateTime、DateTimeZone
  • すべての日付関連値は、引用符で囲まれた文字列(単一/二重)である必要があります。
  • 日付は時間部分のない日付です - "yyyy-MM-dd"の形式にする必要があります。
  • DateTimeは時間を含む日付です - タイム・ゾーン情報なし - HHは24時間形式である"YYYY-MM-dd'T'HH:mm-ss"の形式にする必要があります。
  • DateTimeZoneは日時です - タイム・ゾーン情報あり - これは、"YYYY-MM-dd'T'HH:mm-ssZ"の形式にする必要があります。ここで、HHは24時間形式、zはタイム・ゾーンです。
  • その他の日付書式は文字列として扱われ、日付書式の検証に失敗して問合せエラーになります。
  • Range演算子とともに使用する場合、下限値と上限値のタイプは同じ形式である必要があります(つまり、同じ式でDateとDateTimeを混在させることはできません)。
  • 複数値演算子(in、matchAllなど)とともに使用する場合、カッコ付きリストのすべての値は同じ形式である必要があります(つまり、同じ式で日付をDateTimeと混在させることはできません)。
Null値とNull文字列
  • null値キーワードは許可されません。
  • 'null'、'NULL'、'NuLl'などの引用符で囲まれたnull文字列は許可されません。
数値(整数および長いリテラル)
  • 負の整数および正の整数と長整数がサポートされています。
  • 小数点と指数を含む数値はサポートされていません。
  • US-ASCII形式の数値のみがサポートされています。
引用文字列
  • 単一引用符で囲まれた文字列と二重引用符で囲まれた文字列の両方を値として使用できます。
  • 一重引用符で囲まれた文字列では、一重引用符を前に別の一重引用符(SQLと同様)を使用してエスケープできます。
  • 二重引用符で囲まれた文字列では、二重引用符はバックスラッシュを使用してエスケープできます(Javaコードの文字列と同様)。
  • 二重引用符で囲まれた文字列で一重引用符をエスケープする必要はありません。その逆も同じです。
  • 引用符で囲まれた文字列には、Unicode文字(日本語文字など)を含めることができます - 問合せ自体がURLエンコードされている場合に限ります。

問合せパラメータの別名

この表は、問合せパラメータ、問合せパラメータの別名およびそれぞれの例を示しています。

問合せパラメータ 別名 問合せパラメータの例 別名の例
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'