キーワード クエリ言語 (KQL) 構文のリファレンスKeyword Query Language (KQL) syntax reference

SharePoint の検索 の KQL クエリの構築について説明します。この構文リファレンスは KQL クエリ要素と、KQL クエリのプロパティ制限および演算子の使用方法を説明します。Learn to construct KQL queries for Search in SharePoint. This syntax reference describes KQL query elements and how to use property restrictions and operators in KQL queries.

KQL クエリの要素Elements of a KQL query

KQL クエリは、次の 1 つ以上の要素で構成されます。A KQL query consists of one or more of the following elements:

  • 自由形式のキーワード (単語または語句)Free text-keywords—words or phrases

  • プロパティ制限Property restrictions

KQL クエリ要素と 1 つ以上の使用可能な演算子を組み合わせることができます。You can combine KQL query elements with one or more of the available operators.

KQL クエリに演算子しか含まれていないか空だと無効になります。KQL クエリでは大文字と小文字が区別されませんが、演算子では大文字と小文字が区別されます (大文字)。If the KQL query contains only operators or is empty, it isn't valid. KQL queries are case-insensitive but the operators are case-sensitive (uppercase).

注意

KQL クエリの長さ制限は、その作成方法によって異なります。The length limit of a KQL query varies depending on how you create it. 既定の SharePoint 検索フロント エンドを使用して KQL クエリを作成した場合、長さは 2,048 文字に制限されます。If you create the KQL query by using the default SharePoint search front end, the length limit is 2,048 characters. ただし、クエリ オブジェクト モデルを使用してプログラムによって作成する KQL クエリの既定の長さ制限は、4,096 文字になります。However, KQL queries you create programmatically by using the Query object model have a default length limit of 4,096 characters. この制限は、MaxKeywordQueryTextLength プロパティまたは DiscoveryMaxKeywordQueryTextLength プロパティ (電子情報開示の場合) を使用して、20,480 文字まで増やすことができます。You can increase this limit up to 20,480 characters by using the MaxKeywordQueryTextLength property or the DiscoveryMaxKeywordQueryTextLength property (for eDiscovery).

KQL を使った自由形式のクエリを構築するConstructing free-text queries using KQL

自由形式の式を使用して KQL クエリを構築すると、SharePoint の検索 が、フルテキスト インデックスに格納されている用語に基づいて、クエリに対して選択した用語と結果を照合します。これには、 FullTextQueriabletrue に設定されている管理プロパティ値が含まれます。When you construct your KQL query by using free-text expressions, Search in SharePoint matches results for the terms you chose for the query based on terms stored in the full-text index. This includes managed property values where FullTextQueriable is set to true.

自由形式の KQL クエリは、大文字小文字の区別がありませんが、演算子は大文字である必要があります。以下の 1 つ以上の項目を自由形式の式として使用し、KQL クエリを構築できます。Free text KQL queries are case-insensitive but the operators must be in uppercase. You can construct KQL queries by using one or more of the following as free-text expressions:

  • word (空白または句読点のない 1 つ以上の文字を含みます)A word (includes one or more characters without spaces or punctuation)

  • phrase (空白で区切られた 2 つ以上の単語を一緒に含みます。ただし単語は二重引用符で囲まれている必要があります)A phrase (includes two or more words together, separated by spaces; however, the words must be enclosed in double quotation marks)

複雑なクエリを構築する場合は、複数の自由形式の式を KQL クエリの演算子と組み合わせることができます。式の間に演算子が指定されていない自由形式の式が複数ある場合、クエリ動作は AND 演算子を使用した場合と同じになります。To construct complex queries, you can combine multiple free-text expressions with KQL query operators. If there are multiple free-text expressions without any operators in between them, the query behavior is the same as using the AND operator.

自由形式の KQL クエリでの単語の使用Using words in the free-text KQL query

自由形式の KQL クエリで単語を使用すると、SharePoint の検索は、その単語と、フルテキスト インデックスに格納された用語との完全一致する結果を返します。ワイルドカード演算子 (*) を使用して前方一致を有効にすることで、単語の一部だけを単語の最初から使用することができます。前方一致では、SharePoint の検索は、ゼロ以上の文字が続く単語を含む用語と結果を照合します。When you use words in a free-text KQL query, Search in SharePoint returns results based on exact matches of your words with the terms stored in the full-text index. You can use just a part of a word, from the beginning of the word, by using the wildcard operator (*) to enable prefix matching. In prefix matching, Search in SharePoint matches results with terms that contain the word followed by zero or more characters.

たとえば、以下の KQL クエリでは用語 "federated" および "search" を含むコンテンツ項目を返します。For example, the following KQL queries return content items that contain the terms "federated" and "search":

federated search

federat* search

search fed*

KQL クエリでは後方一致をサポートしていません。KQL queries don't support suffix matching.

自由形式の KQL クエリでの語句の使用Using phrases in the free-text KQL query

自由形式の KQL クエリで語句を使用すると、SharePoint の検索は、指定された語句内の単語が隣合っている項目のみを返します。KQL クエリで語句を指定するには、二重引用符を使用する必要があります。When you use phrases in a free-text KQL query, Search in SharePoint returns only the items in which the words in your phrase are located next to each other. To specify a phrase in a KQL query, you must use double quotation marks.

KQL クエリは後方一致をサポートしないため、自由形式のクエリの語句の前にワイルドカード演算子を使用することはできません。ただし、語句の後にはワイルドカード演算子を使用することができます。KQL queries don't support suffix matching, so you can't use the wildcard operator before a phrase in free-text queries. However, you can use the wildcard operator after a phrase.

KQL でのプロパティ制限クエリProperty restriction queries in KQL

KQL を使用すると、プロパティ制限を使用するクエリを作成し、指定した条件に基づく結果のみを照合するようにクエリの焦点を絞り込むことができます。Using KQL, you can construct queries that use property restrictions to narrow the focus of the query to match only results based on a specified condition.

プロパティ制限の指定Specifying property restrictions

基本的なプロパティ制限は以下から構成されます。A basic property restriction consists of the following:

<Property Name><Property Operator><Property Value>

表 1 に、KQL クエリでの有効なプロパティ制限構文の例をいくつか示します。Table 1 lists some examples of valid property restrictions syntax in KQL queries.

表 1. 有効なプロパティ制限構文Table 1. Valid property restriction syntax

構文Syntax 返される値Returns
author:"John Smith"
John Smith によって作成されたコンテンツ項目を返します。Returns content items authored by John Smith.
filetype:docx
Microsoft Word ドキュメントを返します。Returns Microsoft Word documents.
filename:budget.xlsx
ファイル名が budget.xlsx のコンテンツ項目を返します。Returns content items with the file name budget.xlsx.

プロパティ制限では、プロパティ名、プロパティ演算子、プロパティ値の間に空白を含めることはできません。空白が含まれていると、プロパティ制限は自由形式のクエリとして処理されます。プロパティ制限の長さは、2,048 文字までです。The property restriction must not include white space between the property name, property operator, and the property value, or the property restriction is treated as a free-text query. The length of a property restriction is limited to 2,048 characters.

以下の例では、空白が含まれているために、クエリは、John Smith が作成したコンテンツ項目ではなく、用語 "author" と "John Smith" が含まれているコンテンツ項目を返します。In the following examples, the white space causes the query to return content items containing the terms "author" and "John Smith", instead of content items authored by John Smith:

author: "John Smith"

author :"John Smith"

author : "John Smith"

つまり、前述のプロパティ制限は、次と同等のものになります。In other words, the previous property restrictions are equivalent to the following:

author "John Smith"

プロパティ制限のプロパティ名の指定Specifying property names for property restrictions

プロパティ制限に、有効な管理プロパティ名を指定する必要があります。SharePoint の検索には、既定で、ドキュメントの管理プロパティがいくつか含まれています。You must specify a valid managed property name for the property restriction. By default, Search in SharePoint includes several managed properties for documents.

クロールされたプロパティの値にプロパティ制限を指定するには、まずクロールされたプロパティを管理プロパティにマップする必要があります。「 エンド ユーザーの検索操作性を計画する (Office SharePoint Server)」の「 管理プロパティおよびクロールされたプロパティ 」を参照してください。To specify a property restriction for a crawled property value, you must first map the crawled property to a managed property. See Managed and crawled properties in Plan the end-user search experience.

管理プロパティは、ドキュメントで検索できるように、 Queryable である必要があります。さらに管理プロパティは取得するために Retrievable にすることもできます。ただし、管理プロパティはプロパティ検索を実行するために Retrievable である必要はありません。The managed property must be Queryable so that you can search for that managed property in a document. In addition, the managed property may be Retrievable for the managed property to be retrieved. However, the managed property doesn't have to be Retrievable to carry out property searches.

プロパティ制限でサポートされているプロパティ演算子Property operators that are supported in property restrictions

SharePoint の検索 では、表 2 に示すように、プロパティ制限用のいくつかのプロパティ演算子をサポートしています。Search in SharePoint supports several property operators for property restrictions, as shown in Table 2.

表 2. プロパティ制限の有効なプロパティ演算子Table 2. Valid property operators for property restrictions

演算子Operator 説明Description サポートされている管理プロパティの型Supported managed property type
::
プロパティ制限で指定された値がプロパティ ストア データベースに格納されているプロパティ値と等しい結果を返すか、フルテキスト インデックスに格納されているプロパティ値の各用語を照合します。Returns results where the value specified in the property restriction is equal to the property value that is stored in the Property Store database, or matches individual terms in the property value that is stored in the full-text index.
TextText
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble
YesNoYesNo
=
プロパティ値がプロパティ制限で指定した値と等しい検索結果を返します。Returns search results where the property value is equal to the value specified in the property restriction.
: 完全一致検索を実行する場合、= 演算子とアスタリスク (*) を組み合わせて使用することはお勧めしません。Note: We do not recommend combining the = operator together with asterisk ( *) when you do exact matching.
TextText
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble
YesNoYesNo
<
プロパティ値がプロパティ制限で指定された値より小さい検索結果を返します。Returns results where the property value is less than the value specified in the property restriction.
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble
>
プロパティ値がプロパティ制限で指定された値より大きい検索結果を返します。Returns search results where the property value is greater than the value specified in the property restriction.
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble
<=
プロパティ値がプロパティ制限で指定された値以下の検索結果を返します。Returns search results where the property value is less than or equal to the value specified in the property restriction.
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble
>=
プロパティ値がプロパティ制限で指定された値以上の検索結果を返します。Returns search results where the property value is greater than or equal to the value specified in the property restriction.
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble
<>
プロパティ値がプロパティ制限で指定された値と等しくない検索結果を返します。Returns search results where the property value does not equal the value specified in the property restriction.
DateTimeDateTime
IntegerInteger
DecimalDecimal
TextText
DoubleDouble
YesNoYesNo
....
プロパティ値がプロパティ制限で指定された範囲内にある検索結果を返します。Returns search results where the property value falls within the range specified in the property restriction.
たとえば、範囲 A..B は A から B までの一連の値を表します。日付の範囲の場合、これは A 日の開始から、B 日の終了を意味します。For example, the range A..B represents a set of values from A to B where both A and B are inclusive. For date ranges this means from the beginning of day A to the end of day B.
DateTimeDateTime
IntegerInteger
DecimalDecimal
DoubleDouble

プロパティ値の指定Specifying property values

管理プロパティの型には、有効なデータ型であるプロパティ値を指定する必要があります。表 3 に、このような型のマッピングを示します。You must specify a property value that is a valid data type for the managed property's type. Table 3 lists these type mappings.

表 3. 管理プロパティの型の有効なデータ型のマッピングTable 3. Valid data type mappings for managed property types

管理プロパティの型Managed type データ型Data type
TextText
StringString
IntegerInteger
Int64Int64
DoubleDouble
System.DoubleSystem.Double
DecimalDecimal
DecimalDecimal
DateTime()DateTime()
DateTimeDateTime
YesNoYesNo
BooleanBoolean

テキスト プロパティ値Text property values

テキスト プロパティ値の場合、プロパティが格納されているのがフルテキスト インデックスか検索インデックスかによって、照合の動作が異なります。For text property values, the matching behavior depends on whether the property is stored in the full-text index or in the search index.

フルテキスト インデックス内のプロパティ値Property values in the full-text index

FullTextQueriable プロパティが、管理プロパティで true に設定されている場合は、プロパティ値はフルテキスト インデックスに格納されます。これは文字列プロパティに対してのみ設定できます。クエリに指定されたプロパティ値は、フルテキスト インデックスに格納されている個々の用語と照合されます。プロパティ値全体と照合するかどうかを指定するには、 NoWordBreaker プロパティを使用します。Property values are stored in the full-text index when the FullTextQueriable property is set to true for a managed property. You can configure this only for string properties. Property values that are specified in the query are matched against individual terms that are stored in the full-text index. Use the NoWordBreaker property to specify whether to match with the whole property value.

たとえば、Paul Shakespear が作成したコンテンツ項目を検索している場合、以下の KQL クエリが一致した結果を返します。For example, if you're searching for a content item authored by Paul Shakespear, the following KQL query returns matching results:

author:Shakespear

author:Paul

前方一致もサポートされています。ワイルドカード演算子 (*) を使用することもできますが、個々の単語を指定する場合は不要です。前述の例を続けると、次の KQL クエリは Paul Shakespear が作成したコンテンツ項目を一致したものとして返します。Prefix matching is also supported. You can use the wildcard operator (*), but isn't required when you specify individual words. Continuing with the previous example, the following KQL query returns content items authored by Paul Shakespear as matches:

author:Shakesp*

プロパティ値に語句を指定する場合、一致した結果にはフルテキスト インデックスに格納されているプロパティ値内に指定された語句が含まれている必要があります。以下のクエリ例では、"Advanced Search XML"、"Learning About the Advanced Search Web Part" など、タイトルにテキスト "Advanced Search" があるコンテンツ項目を返します。When you specify a phrase for the property value, matched results must contain the specified phrase within the property value that is stored in the full-text index. The following query example returns content items with the text "Advanced Search" in the title, such as "Advanced Search XML", "Learning About the Advanced Search web part", and so on:

title:"Advanced Search"

プロパティ値で指定された語句では先頭一致もサポートされていますが、クエリでワイルドカード演算子 (*) を使用する必要があり、ワイルドカード演算子は、以下のように、語句の最後でのみサポートされています。Prefix matching is also supported with phrases specified in property values, but you must use the wildcard operator (*) in the query, and it is supported only at the end of the phrase, as follows:

title:"Advanced Sear*"

以下のクエリでは予想した結果は返されません。The following queries do not return the expected results:

title:"Advan* Search"

title:"Advanced Sear"

プロパティの数値Numerical values for properties

IntegerDouble、および Decimal の管理プロパティの型を含む数値プロパティ値では、プロパティ制限はプロパティ値全体と照合されます。For numerical property values, which include the Integer, Double, and Decimal managed types, the property restriction is matched against the entire value of the property.

プロパティの日付または時刻の値Date or time values for properties

KQL では日付と時刻に対して datetime データ型を提供しています。クエリでは、次の ISO 8601 互換の datetime 形式がサポートされます。KQL provides the datetime data type for date and time.The following ISO 8601-compatible datetime formats are supported in queries:

  • YYYY-MM-DDYYYY-MM-DD

  • YYYY-MM-DDThh:mm:ssYYYY-MM-DDThh:mm:ss

  • YYYY-MM-DDThh:mm:ssZYYYY-MM-DDThh:mm:ssZ

  • YYYY-MM-DDThh:mm:ssfrZYYYY-MM-DDThh:mm:ssfrZ

これらの datetime 形式では、In these datetime formats:

  • YYYY には、4 桁の年を指定します。YYYY specifies a four-digit year.

    注意

    サポートされるのは、4 桁の年だけです。Only four-digit years are supported.

  • MM には、2 桁の月を指定します。たとえば、01 は 1 月を意味します。MM specifies a two-digit month. For example, 01 = January.

  • DD には、2 桁の日 (01 ~ 31) を指定します。DD specifies a two-digit day of the month (01 through 31).

  • T には、文字 "T" を指定します。T specifies the letter "T".

  • hh には、2 桁の時間 (00 ~ 23) を指定します。A.M. と P.M. は使用できません。hh specifies a two-digits hour (00 through 23); A.M./P.M. indication is not allowed.

  • mm には、2 桁の分 (00 ~ 59) を指定します。mm specifies a two-digit minute (00 through 59).

  • ss には、2 桁の秒 (00 ~ 59) を指定します。ss specifies a two-digit second (00 through 59).

  • fr には、秒 ss の省略可能な小数部を指定します。秒の後の . に続けて 1 ~ 7 桁で指定します。たとえば、2012-09-27T11:57:34.1234567 のように指定します。fr specifies an optional fraction of seconds, ss; between 1 to 7 digits that follows the . after the seconds. For example, 2012-09-27T11:57:34.1234567.

すべての日付と時刻の値は、UTC (協定世界時) (GMT (グリニッジ標準時) とも呼ばれます) タイム ゾーンに従って指定する必要があります。UTC タイムゾーンの識別子 (末尾の "Z" 文字) はオプションです。All date/time values must be specified according to the UTC (Coordinated Universal Time), also known as GMT (Greenwich Mean Time) time zone. The UTC time zone identifier (a trailing "Z" character) is optional.

KQL でサポートされている関連する日付間隔Relevant date intervals supported by KQL

KQL では、相対的な"day"範囲のクエリをサポートする検索クエリを作成することができます。予約済みのキーワードは表 4 に示されています。日付間隔には二重引用符 ("") を使用し、名前の間にはスペースを 1 つ入れます。KQL enables you to build search queries that support relative "day" range query, with reserved keywords as shown in Table 4. Use double quotation marks ("") for date intervals with a space between their names.

一致には、今日変更されたアイテムが含まれます。Matches would include items modified today:

LastModifiedTime=today

一致には、現在の年の最初から現在の年が終了するまでのアイテムが含まれます。Matches would include items from the beginning of the current year until the end of the current year:

LastModifiedTime="this year"

一致には、2019 年 1 月 1 日から 2019 年 4 月 26 日までのアイテムが含まれます。Matches would include items from January 1st of 2019 until April 26th of 2019:

LastModifiedTime>=2019-01-01 AND LastModifiedTime<=2019-04-26

表 4. 日付間隔の予約済みキーワードTable 4. Date interval reserved keywords

日付間隔の名前Name of date interval 説明Description
今日today
現在の日付の初めから現在の日付の終わりまでの時間を表します。Represents the time from the beginning of the current day until the end of the current day.
yesterdayyesterday
現在の日付の直前の日の初めから終わりまでの時間を表します。Represents the time from the beginning of the day until the end of the day that precedes the current day.
this weekthis week
現在の週の初めから現在の週の終わりまでの時間を表します。クエリ テキストがどのカルチャのもとで形成されたかに応じて、週の初めの日が決定されます。Represents the time from the beginning of the current week until the end of the current week. The culture in which the query text was formulated is taken into account to determine the first day of the week.
this monththis month
現在の月の初めから現在の月の終わりまでの時間を表します。Represents the time from the beginning of the current month until the end of the current month.
先月last month
現在の月の直前の月の全期間を表します。Represents the entire month that precedes the current month.
this yearthis year
現在の年の初めから現在の年の終わりまでの時間を表します。Represents the time from the beginning of the current year until the end of the current year.
last yearlast year
現在の年の直前の年の全期間を表します。Represents the entire year that precedes the current year.

KQL クエリ内での複数のプロパティ制限の使用Using multiple property restrictions within a KQL query

SharePoint の検索では、同じ KQL クエリで複数のプロパティ制限を使用できます。複数のプロパティ制限で同じプロパティを使用するか、プロパティ制限ごとに異なるプロパティを使用することができます。Search in SharePoint supports the use of multiple property restrictions within the same KQL query. You can use either the same property for more than one property restriction, or a different property for each property restriction.

同じプロパティ制限の複数のインスタンスを使用する場合、照合は KQL クエリの一連のプロパティ制限に基づいて行われます。照合には、以下のように John Smith または Jane Smith によって作成されたコンテンツ項目が含まれます。When you use multiple instances of the same property restriction, matches are based on the union of the property restrictions in the KQL query. Matches would include content items authored by John Smith or Jane Smith, as follows:

author:"John Smith" author:"Jane Smith"

この機能は、以下のように OR ブール演算子を使用するのと同じです。This functionally is the same as using the OR Boolean operator, as follows:

author:"John Smith" OR author:"Jane Smith"

異なるプロパティ制限を使用する場合、以下のように、照合は KQL クエリのプロパティ制限の共通部分に基づいて行われます。When you use different property restrictions, matches are based on an intersection of the property restrictions in the KQL query, as follows:

author:"John Smith" filetype:docx

照合には、John Smith が作成した Microsoft Word ドキュメントが含まれます。これは、以下のように AND ブール演算子を使用するのと同じです。Matches would include Microsoft Word documents authored by John Smith. This is the same as using the AND Boolean operator, as follows:

author:"John Smith" AND filetype:docx

KQL クエリ内でのプロパティ制限のグループ化Using multiple property restrictions within a KQL query

適用対象: Office 365 | SharePoint Online | SharePoint 2019Applies to: Office 365 | SharePoint Online | SharePoint Server 2013

テキスト型の特定のプロパティに関連する複数のプロパティ制限を次の形式でグループ化するには、かっこ () を使用します。You may use parenthesis () to group multiple property restrictions related to a specific property of type Text with the following format:

<Property Name>:(<Expression>)

より高度なクエリでは、() の表記を使用すると、より簡潔で読みやすいクエリ式を作成することができます。More advanced queries might benefit from using the () notation to construct more condensed and readable query expressions.

クエリ:The query:

author:"John Smith" AND author:"Jane Smith"

次のように書き換えることができます:The previous example can be rewritten as follows.

author:("John Smith" "Jane Smith")

クエリ:The query:

title:Advanced title:Search title:Query NOT title:"Advanced Search Query"

次のように書き換えることができます:The previous example can be rewritten as follows.

title:((Advanced OR Search OR Query) -"Advanced Search Query")

クエリ:The query:

title:Advanced XRANK(cb=1) title:Search XRANK(cb=1) title:Query

次のように書き換えることができます:The previous example can be rewritten as follows.

title:(Advanced XRANK(cb=1) Search XRANK(cb=1) Query)

注意

() を使用してプロパティ クエリの式をグループ化すると、個々のクエリ ワードが見出語化されるにつれて一致数が増加することがあります。When using () to group an expression on a property query the number of matches might increase as individual query words are lemmatized, which they are not otherwise. 引用符で囲まれた語句は、見出語化されません。Phrases in quotes are not lemmatized.

title:page は正確な用語ページとの一致を返し、title:(page) も用語ページの一致を返します。title:page return matches with the exact term page while title:(page) also return matches for the term pages.

複雑なクエリの KQL 演算子KQL operators for complex queries

KSQL 構文には、複雑なクエリを作成するときに使用できる複数の演算子が用意されています。KQL syntax includes several operators that you can use to construct complex queries.

ブール演算子Boolean operators

ブール演算子を使用して、検索の範囲を広げたり、狭くしたりします。ブール演算子は、KQL クエリのフリー テキストの式とプロパティ制限で使用できます。表 5 では、サポートされるブール演算子を列挙します。You use Boolean operators to broaden or narrow your search. You can use Boolean operators with free text expressions and property restrictions in KQL queries. Table 5 lists the supported Boolean operators.

表 5. KQL でサポートされるブール演算子Table 5. Boolean operators supported in KQL

演算子Operator 説明Description
ANDAND
AND 演算子によって指定したすべてのフリー テキストの式またはプロパティ制限を含む検索結果を返します。 AND 演算子の前後両方に、有効なフリー テキストの式または有効なプロパティ制限を指定する必要があります。これは、正符号 ("+") を使用したときと同じです。Returns search results that include all of the free text expressions, or property restrictions specified with the AND operator. You must specify a valid free text expression and/or a valid property restriction both preceding and following the AND operator. This is the same as using the plus ("+") character.
NOTNOT
指定したフリー テキストの式またはプロパティ制限を含まない検索結果を返します。 NOT 演算子の後に有効なフリー テキストの式または有効なプロパティ制限を指定する必要があります。これは、負符号 ("-") を使用したときと同じです。Returns search results that don't include the specified free text expressions or property restrictions. You must specify a valid free text expression and/or a valid property restriction following the NOT operator. This is the same as using the minus ("-") character.
またはOR
指定したフリー テキストの式またはプロパティ制限のうち、1 つ以上を含む検索結果を返します。 OR 演算子の前後両方に、有効なフリー テキストの式または有効なプロパティ制限を指定する必要があります。Returns search results that include one or more of the specified free text expressions or property restrictions. You must specify a valid free text expression and/or a valid property restriction both preceding and following the OR operator.

近接演算子Proximity operators

近接演算子を使用して、指定した検索用語が互いに至近距離にある結果を返します。近接演算子は、フリー テキストの式でのみ使用できます。KQL クエリのプロパティ制限での使用はサポートされません。 NEARONEAR の 2 つの近接演算子があります。You use proximity operators to match the results where the specified search terms are within close proximity to each other. Proximity operators can be used with free-text expressions only; they are not supported with property restrictions in KQL queries. There are two proximity operators: NEAR and ONEAR.

NEAR 演算子NEAR operator

NEAR 演算子は、指定された検索用語が互いに至近距離にある結果を返します。用語の順序は保持されません。 NEAR の構文は次のとおりです。The NEAR operator matches the results where the specified search terms are within close proximity to each other, without preserving the order of the terms. The syntax for NEAR is as follows:

<expression> NEAR(n=4) <expression>

n は、用語間の最大距離を示すオプションのパラメーターです。n の値は 0 以上の整数で、既定値は 8 です。Where n is an optional parameter that indicates maximum distance between the terms. The value of n is an integer >= 0 with a default of 8.

パラメーター n は、n=v として指定できます。値を表す v は、v に短縮できます。たとえば NEAR(4) では、v は 4 です。The parameter n can be specified as n=v where v represents the value, or shortened to only v; such as NEAR(4) where v is 4.

次に例を示します。For example:

"acquisition" NEAR "debt"

このクエリは、"acquisition" および "debt" という用語が同じアイテム内に出現し、"acquisition" のインスタンスの後に最大 8 つの他の用語が続き、さらに "debt" という用語のインスタンスが続くか、その反対の順序で出現するアイテムを返します。用語の順序は照合に影響しません。This query matches items where the terms "acquisition" and "debt" appear within the same item, where an instance of "acquisition" is followed by up to eight other terms, and then an instance of the term "debt"; or vice versa. The order of the terms is not significant for the match.

用語間の距離を短くする必要がある場合は、それを指定できます。次のクエリは、"acquisition" および "debt" という用語が同じアイテム内に出現し、用語間の最大距離が 3 であるアイテムに一致します。ここでも、用語の順序は照合に影響しません。If you need a smaller distance between the terms, you can specify it. The following query matches items where the terms "acquisition" and "debt" appear within the same item, where a maximum distance of 3 between the terms. Once again the order of the terms does not affect the match.

"acquisition" NEAR(n=3) "debt"

注意

SharePoint では、NEAR 演算子はトークンの順序を保持しなくなりました。In SharePoint the NEAR operator no longer preserves the ordering of tokens. また、NEAR 演算子は、最大トークン距離を示すオプションのパラメーターを受け取るようになりました。In addition, the NEAR operator now receives an optional parameter that indicates maximum token distance. ただし、既定値は依然として 8 です。However, the default value is still 8. 以前の動作を使用する必要がある場合は、代わりに ONEAR を使用します。If you must use the previous behavior, use ONEAR instead.

ONEAR 演算子ONEAR operator

ONEAR 演算子は、指定された検索用語が互いに至近距離にある結果を返し、用語の順序を保持します。ONEAR の構文は次のとおりです。n は、用語間の最大距離を示すオプションのパラメーターです。n の値は 0 以上の整数で、既定値は 8 です。The ONEAR operator matches the results where the specified search terms are within close proximity to each other, while preserving the order of the terms. The syntax for ONEAR is as follows, where n is an optional parameter that indicates maximum distance between the terms. The value of n is an integer >= 0 with a default of 8.

<expression> ONEAR(n=4) <expression>

パラメーター n は、n=v として指定できます。値を表す v は、v に短縮できます。たとえば ONEAR(4) では、v は 4 です。The parameter n can be specified as n=v where v represents the value, or shortened to only v; such as ONEAR(4) where v is 4.

たとえば、次のクエリは、"acquisition" および "debt" という用語が同じアイテム内に出現し、"acquisition" のインスタンスの後に最大 8 つの他の用語が続き、最後に "debt" という用語のインスタンスが続くアイテムを返します。用語の順序は、返すアイテムと一致する 必要がありますFor example, the following query matches items where the terms "acquisition" and "debt" appear within the same item, where an instance of "acquisition" is followed by up to eight other terms, and then an instance of the term "debt". The order of the terms must match for an item to be returned:

"acquisition" ONEAR "debt"

用語間の距離を短くする必要がある場合は、それを次のように指定できます。このクエリは、"acquisition" および "debt" という用語が同じアイテム内に出現し、用語間の最大距離が 3 であるアイテムに一致します。用語の順序は、返すアイテムと一致する 必要がありますIf you require a smaller distance between the terms, you can specify it as follows. This query matches items where the terms "acquisition" and "debt" appear within the same item, where a maximum distance of 3 between the terms. The order of the terms must match for an item to be returned:

"acquisition" ONEAR(n=3) "debt"

シノニム演算子Synonym operators

WORDS 演算子を使用して、クエリの用語は同意語であり、返される結果は、指定した用語のどちらかに一致する必要があることを指定します。 WORDS 演算子は、フリー テキストの式でのみ使用できます。KQL クエリのプロパティ制限での使用はサポートされません。You use the WORDS operator to specify that the terms in the query are synonyms, and that results returned should match either of the specified terms. You can use the WORDS operator with free text expressions only; it is not supported with property restrictions in KQL queries.

次のクエリの例では、用語 "TV" と用語 "television" のどちらかを含んでいる結果に一致します。この一致動作は、次のクエリを使用したときと同じです。The following query example matches results that contain either the term "TV" or the term "television". This matching behavior is the same as if you had used the following query:

WORDS(TV, Television)

TV OR Television

この 2 つのクエリでは、結果のランク付けの方法が異なります。 WORDS 演算子を使用すると、用語 "TV" と "television" は、個別の用語ではなく同意語として処理されます。このため、どちらかの用語のインスタンスは、すべてのインスタンスが同じ用語の場合と同じようにランク付けされます。たとえば、用語 "television" の 1 つのインスタンスと用語 "TV" の 5 つのインスタンスを含んでいるコンテンツ項目は、用語 "TV" のインスタンスを 6 つ含んでいるコンテンツ項目と同じようにランク付けされます。These queries differ in how the results are ranked. When you use the WORDS operator, the terms "TV" and "television" are treated as synonyms instead of separate terms. Therefore, instances of either term are ranked as if they were the same term. For example, a content item that contained one instance of the term "television" and five instances of the term "TV" would be ranked the same as a content item with six instances of the term "TV".

ワイルドカード演算子Wildcard operator

ワイルドカード演算子、つまりアスタリスク (" * ") を使用して、先頭一致を有効にします。You use the wildcard operator—the asterisk character (" * ")—to enable prefix matching. キーワード クエリでは、単語の一部を指定できます。これは、単語の先頭部分を指定し、その後にワイルドカード演算子を指定して行います。次に例を示します。You can specify part of a word, from the beginning of the word, followed by the wildcard operator, in your query, as follows. このクエリは、"serv" で始まり、他の文字が 0 個以上続く用語を含む結果に一致します。たとえば、serve、server、service などが一致します。This query would match results that include terms beginning with "serv", followed by zero or more characters, such as serve, server, service, and so on:

serv*

包含演算子と除外演算子Inclusion and exclusion operators

包含演算子と除外演算子を使用して、フリー テキストの式またはプロパティ制限で指定した値に一致するコンテンツを、返される結果に含めるか、除外するかを指定できます。表 6 で、この演算子について説明します。You can specify whether the results that are returned should include or exclude content that matches the value specified in the free text expression or the property restriction by using the inclusion and exclusion operators, described in Table 6.

表 6. 結果にコンテンツを含めるまたは除外するための演算子Table 6. Operators for including and excluding content in results

名前Name 演算子Operator 動作Behavior
包含Inclusion
" + "
包含する値に一致する値を含んでいるコンテンツが返されます。Includes content with values that match the inclusion.
これは、文字が指定されていない場合の既定の動作です。これは AND 演算子を使用したときと同じ動作です。This is the default behavior if no character is specified. This is the same as using the AND operator.
除外Exclusion
" - "
除外する値に一致する値を含んでいるコンテンツが除外されます。これは NOT 演算子を使用したときの動作と同じです。Excludes content with values that match the exclusion. This is the same as using the NOT operator.

動的ランク付け演算子Dynamic ranking operator

XRANK 演算子を使用して、match expression 内の特定の用語出現回数に基づいてアイテムの動的ランクをアップします。どのアイテムがクエリに一致するかに変更はありません。XRANK 式には、一致する必要のある 1 つのコンポーネントである match expression、および動的ランク付けのみに貢献する 1 つ以上のコンポーネントである rank expression が含まれます。XRANK 式を有効にするには、n を除く 1 つ以上のパラメーターを指定する必要があります。You use the XRANK operator to boost the dynamic rank of items based on certain term occurrences within the match expression, without changing which items match the query. An XRANK expression contains one component that must be matched, the match expression, and one or more components that contribute only to dynamic ranking, the rank expression. At least one of the parameters, excluding n, must be specified for an XRANK expression to be valid.

注意

複雑なクエリを使用すると、クエリの待機時間 (およびタイムアウトになる確率) が増加します。特に xrank 演算子が使用される場合に顕著です。Query latency (and probability of timeout) increases when using complex queries and especially when using xrank operators. クエリの待機時間の増加は、XRANK 演算子の数と、クエリ ツリー内の_一致式_および_ランク付け式_ コンポーネントでのヒット数に依存します。The increase in query latency depends on the number of XRANK operators and the number of hits in the match expression and rank expression components in the query tree.

Match expressions は入れ子にされた XRANK式を含む任意の有効な KQL 式です。 Rank expressionsXRANK 式を含まない任意の有効な KQL 式です。KQL クエリに複数の XRANK 演算子がある場合、最終的な動的ランク値は、すべての XRANK 演算子のブーストの合計として計算されます。Match expressions may be any valid KQL expression, including nested XRANK expressions. Rank expressions may be any valid KQL expression without XRANK expressions. If your KQL queries have multiple XRANK operators, the final dynamic rank value is calculated as a sum of boosts across all XRANK operators.

注意

同じレベルの複数の XRANK 演算子がある KQL クエリの計算の順序を明示的に指示するには、かっこを使います。Use parenthesis to explicitly indicate the order of computation for KQL queries that have more than one XRANK operator at the same level.

XRANK 演算子は次の構文で使用します。You can use the XRANK operator in the following syntax:

<match expression> XRANK(cb=100, rb=0.4, pb=0.4, avgb=0.4, stdb=0.4, nb=0.4, n=200) <rank expression>

XRANK 演算子の動的ランク付けは、次の数式に基づいて計算されます。The XRANK operator's dynamic ranking calculation is based on this formula:

XRANK 演算子用の式

表 7 は、 XRANK 演算子で使用可能な基本パラメーターを示しています。Table 7 lists the basic parameters available for the XRANK operator.

表 7. XRANK 演算子パラメーターTable 7. XRANK operator parameters

パラメーターParameter Value 説明Description
nn
<integer_value><integer_value>
統計を計算する結果の数を指定します。Specifies the number of results to compute statistics from.
このパラメーターは、動的ランクが貢献する結果の数には影響しません。統計の計算から無関係なアイテムを除外するだけです。This parameter does not affect the number of results that the dynamic rank contributes to; it is just a means to exclude irrelevant items from the statistics calculations.
既定値: 0 。ゼロの値は、すべての ドキュメント のセマンティックを引き継ぎます。Default: 0. A zero value carries the semantic of all documents .
nbnb
<float_value><float_value>
nb パラメーターは、正規化されたブーストを表します。このパラメーターは、結果セットのランク値の差異および平均スコアの積に乗算する係数を指定します。The nb parameter refers to normalized boost. This parameter specifies the factor that is multiplied with the product of the variance and average score of the rank values of the results set.
XRANK 数式の ff in the XRANK formula.

通常、正規化されたブーストである nb は、変更される唯一のパラメーターです。このパラメーターは、標準偏差を考慮せずに、特定のアイテムの昇格または降格に必要なコントロールを提供します。Typically, normalized boost, nb, is the only parameter that is modified. This parameter provides the necessary control to promote or demote a particular item, without taking standard deviation into account.

次の詳細パラメーターも使用可能ですが、通常は使用しません。The following advanced parameters are also available. However, typically they're not used.

表 8. XRANK の詳細パラメーターTable 8. Advanced parameters for XRANK

パラメーターParameter Value 説明Description
cbcb
<float_value><float_value>
cb パラメーターは定数ブーストを表します。The cb parameter refers to constant boost.
既定値: 0Default: 0.
XRANK 数式の aa in the XRANK formula.
stdbstdb
<float_value><float_value>
stdb パラメーターは標準偏差ブーストを表します。The stdb parameter refers to standard deviation boost.
既定値: 0Default: 0.
XRANK 数式の ee in the XRANK formula.
avgbavgb
<float_value><float_value>
avgb パラメーターは平均ブーストを表します。The avgb parameter refers to average boost.
既定値: 0Default: 0.
XRANK 数式の dd in the XRANK formula.
rbrb
<float_value><float_value>
rb パラメーターは範囲ブーストを表します。この係数は結果セットのランク値の範囲に乗算されます。The rb parameter refers to range boost. This factor is multiplied with the range of rank values in the results set.
既定値: 0Default: 0.
XRANK 数式の bb in the XRANK formula.
pbpb
<float_value><float_value>
pb パラメーターはパーセンテージ ブーストを表します。この係数は、集成内の最小値と比較されるアイテム自身のランクに乗算されます。The pb parameter refers to percentage boost. This factor is multiplied with the item's own rank compared to the minimum value in the corpus.
既定値: 0Default: 0.
XRANK 数式の cc in the XRANK formula.

Examples

例 1. 次の式は、既定のフルテキスト インデックスに "cat" または "dog" が含まれるアイテムに一致します。定数ブーストが 100 で "thoroughbred" も含まれるアイテムについては、動的ランクが上昇します。Example 1. The following expression matches items for which the default full-text index contains either "cat" or "dog". The expression increases dynamic rank of those items with a constant boost of 100 for items that also contain "thoroughbred".

(cat OR dog) XRANK(cb=100) thoroughbred

例 2. 次の式は、既定のフルテキスト インデックスに "cat" または "dog" が含まれるアイテムに一致します。正規化されたブーストが 1.5 で "thoroughbred" も含まれるアイテムについては、動的ランクが上昇します。Example 2. The following expression matches items for which the default full-text index contains either "cat" or "dog". The expression increases dynamic rank of those items with a normalized boost of 1.5 for items that also contain "thoroughbred".

(cat OR dog) XRANK(nb=1.5) thoroughbred

例 3. 次の式は、既定のフルテキスト インデックスに "cat" または "dog" が含まれるアイテムに一致します。定数ブーストが 100、正規化されたブーストが 1.5 で、"thoroughbred" も含まれるアイテムについては、動的ランクが上昇します。Example 3. The following expression matches items for which the default full-text index contains either "cat" or "dog". The expression increases dynamic rank of those items with a constant boost of 100 and a normalized boost of 1.5, for items that also contain "thoroughbred".

(cat OR dog) XRANK(cb=100, nb=1.5) thoroughbred

例 4. 次の式は、"animals" が含まれるすべてのアイテムに一致し、次のように、動的ランクを上げます。Example 4. The following expression matches all items containing the term "animals", and boosts dynamic rank as follows:

  • "dogs" を含むアイテムの動的ランクは、100 ポイント上昇します。Dynamic rank of items that contain the term "dogs" is boosted by 100 points.

  • "cats" を含むアイテムの動的ランクは、200 ポイント上昇します。Dynamic rank of items that contain the term "cats" is boosted by 200 points.

  • "dogs" および "cats" を含むアイテムの動的ランクは、300 ポイント上昇します。Dynamic rank of items that contain both the terms "dogs" and "cats" is boosted by 300 points.

(animals XRANK(cb=100) dogs) XRANK(cb=200) cats

かっこParenthesis

始めかっこ " ( " と終わりかっこ " ) " を使用して、キーワード クエリの異なる部分を組み合わせることができます。各始めかっこ " ( " には、対応する終わりかっこ " ) " が必要です。かっこの前後にある空白はクエリに影響しません。You can combine different parts of a keyword query by using the opening parenthesis character " ( " and closing parenthesis character " ) ". Each opening parenthesis " ( " must have a matching closing parenthesis " ) ". A white space before or after a parenthesis does not affect the query.

関連項目See also