検索の構文および演算子
検索条件にはブール演算子、見積もり、ワイルドカード文字を使用可能で、フィールドのリストの有効データも利用できます。また、検索したいデータの種類を指定することもできます。
検索に含める対象
- メタデータ フィールド
- XML コンテンツ内のエレメント テキスト (特殊文字を削除し、ステミングをサポート)
- 任意の XML エレメント名、属性名、属性値、コメント、処理命令、またはこれらの XML タイプのいずれかに属する任意のテキスト コンテンツ
範囲とフィルタリング
検索条件は、オブジェクトのメタデータに基づいて定義できます。このメタデータには、すべてのリポジトリ オブジェクトに含まれる次の 3 つのプロパティが含まれます。
- 最新バージョンまたはすべてのバージョン — すべてのバージョンのオブジェクトを検索することも、最新バージョンのオブジェクトだけを検索することもできます。既定では、使用可能な最新バージョンのオブジェクトが検索されます。
- 文書の言語 — ある特定の言語のすべての文書を検索することも、複数の言語を選択することもできます。デフォルトでは自分の言語のレポジトリを使用しますが、他の言語のレポジトリを検索することもできます。
- オブジェクト タイプ — 検索の対象を特定のオブジェクトの種類に限定することができます。適切なオブジェクトの種類を選択して検索リストを絞り込み、結果の数を減らすことができます。
また、作成者やステータスなど、さまざまなプロパティを使用して検索結果を制限できます。
ステミング
検索機能ではステミングが使用されます。これは、検索エンジンがさまざまな文法形式の単語を理解し、さまざまなバリエーションの検索結果を表示するようにする技術です。単語を検索すると、ステミングには複数形や動詞の時制などの関連形式が含まれます。その結果、検索用語をシンプルにすることができ、検索エンジンが残りを実行します。
ステミングは全文フィールドで検索するときに使用され、検索に指定された言語によって異なります。たとえば、fly という用語を検索すると、結果には「flying」「flown」「flew」など、「fly」の語幹に基づいた語句を含むリポジトリ オブジェクトが表示されます。
ワイルドカード
ワイルドカードは、文字や単語の柔軟な一致を可能にするプレースホルダです。アスタリスク文字 * を使用して、任意の文字列を表すことができます。
たとえば、comput* という用語を検索すると、結果には computer、computing、computation、compute など、「comput」で始まる単語を含むリポジトリ オブジェクトが表示されます。
ブール演算子
ブール演算子を使用すれば、検索条件をより正確に指定できます。ブール演算子は、語句または語句のグループ間の関係を定義します。ブール演算子は、語句のすべてまたは一部が条件を満たすかどうか、あるいは指定した語句を含むオブジェクトを条件との一致から除外するべきかをどうかを指定する目的で使用します。
| 検索対象 | 演算子 | 例 | 結果 |
|---|---|---|---|
| 同一オブジェクト内の両方の語句 | AND & + | コンテンツ AND 管理 コンテンツ & 管理 コンテンツ + 管理 | 「コンテンツ」と「管理」の両方の語句を含むオブジェクト。 |
| オブジェクトの内のどちらか一方の語句 | または | , スペース | コンテンツ OR 管理 コンテンツ | 管理 コンテンツ, 管理 コンテンツ 管理 | 「コンテンツ」または「管理」、あるいはその両方を含むオブジェクト。 |
| 指定した語句を含まないオブジェクト | NOT ! - | NOT 管理 !管理 -管理 | 「管理」という語句を含まないオブジェクト。 |
文字のグループ化
複数の演算子を含む検索を意図したとおりに確実に実行するには、かっこを使用します。かっこによりブール文字列がグループ化され、個別の条件として使用できます。
以下に例を示します。
| 検索対象: | 例: | 結果: |
|---|---|---|
| (語句 1 and 語句 2) or 語句 3 | (コンテンツ and 管理) 技術 | コンテンツおよび管理という語句を含むすべてのオブジェクト、または技術という語句を含むすべてのオブジェクト。 |
| (語句 1 not 語句 2) and 語句 3 | (コンテンツ not 管理) and 技術 | コンテンツという語句を含むが、管理という語句は含まず、かつ技術という語句も含むすべてのオブジェクト。 |
より複雑な文字列も定義できます。たとえば、「研究開発」という語句または「カスタマー サービス」という語句をこの順序で含んでいるが、XYZ という語句は含まない文字列は、次のような条件を指定して検索できます:
("研究開発" or "カスタマー サービス" サポート) -XYZ
完全一致する語句のための引用符
引用符で囲んでいないテキストを入力すると、検索文字列の各語が、個別の条件として使用されます。結果として表示されるのは、そのうちのいずれかの語句を含むオブジェクトです。完全一致する語句を検索するには、検索文字列を二重引用符で囲みます。
以下に例を示します。
| 検索条件 | 検索結果 |
|---|---|
| コンテンツ 管理 技術 | 語句「コンテンツ」、「管理」、「技術」のいずれかを含むオブジェクト。 |
| "コンテンツ管理技術" | 句「コンテンツ管理技術」 (入力どおりの順序) を含むオブジェクト。 |
特殊文字を含む引用符
このトピックで前述したように、一部の単語と文字には、ブール演算子、ワイルドカード、または文字のグループ化として特殊な意味があります。特殊文字を検索テキストの一部として解釈するには、検索語句を引用符で囲む必要があります。
特殊文字は次のとおりです。+ (プラス記号)、& (アンパサンド)、, (カンマ)、| (バー)、- (マイナス記号)、! (感嘆符)、( (左かっこ)、) (右かっこ)、* (アスタリスク)。
例
XML コンテンツの中でテキストと XML スニペットのどちらを検索するかは、速度と機能のバランスによって判断します。つまり複雑な XML 構造の検索では期待した結果が返らない可能性がありますが、次の通常の使用例はあらゆる環境において有効です。
| 検索対象 | 例 | 結果 |
|---|---|---|
| テキストの存在 | body | エレメント テキスト、属性値、コメント、処理命令に「body」を含むオブジェクト。<body> エレメントのみを含むオブジェクトには一致しないことに注意してください。 |
| XML エレメントの存在 | "<indexterm>" | <indexterm> エレメント (またはエレメント テキスト コンテンツ内の語「indexterm」) を含むオブジェクト |
| XML エレメントの非存在 | -"<indexterm>" | <indexterm> エレメント (およびエレメント テキスト コンテンツ内の語「indexterm」) を含まないオブジェクト |
| 特定のパブリック DOCTYPE のもの | "-//OASIS//DTD DITA Topic//EN" | 「-//OASIS//DTD DITA Topic//EN」(またはエレメント テキスト コンテンツ内に「oasis dtd dita topic en」) を含むオブジェクト (PUBLIC ID に限定されない) |
| 特定のシステム DOCTYPE のもの | "topic.dtd" | 「topic.dtd」(またはエレメント テキスト コンテンツ内に「topic dtd」) を含むオブジェクト (SYSTEM ID に限定されない) |
| 特定の DOCTYPE のもの | "<!DOCTYPE topic PUBLIC \"-//OASIS//DTD DITA Topic//EN\" \"topic.dtd\"" | 所定の DOCTYPE 定義 (またはエレメント テキスト コンテンツ内に「doctype topic public oasis dtd dita topic en topic dtd」) を含むオブジェクト |
| 特定の値をもつ属性 | "href=\"GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7\"" | 「href」属性の値が「GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7」のオブジェクト。内側の二重引用符をエスケープする必要があります。
|
| 特定のコンディション | ishcondition="BLUETOOTH=Y" | 所定のコンディション (またはエレメント テキスト コンテンツ内に「ishcondition bluetooth y」) を含むオブジェクト |
| 属性値 | "GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7#GUID-C90ECA8A-A0B2-4F5B-9F00-7CF27E6CABF7" | 属性値、エレメント テキスト、処理命令テキスト、XML コンテンツなどのテキストの一部にこの文字列を含むオブジェクト。「<」、「=」、「>」の各文字を含む属性値は、この方法では検索できません。たとえば "BLUETOOTH=Y" は検索できません。
|
| 属性の存在 | "href=" | 「href」属性 (またはエレメント テキスト コンテンツ内に「href」) を含むオブジェクト |
| テキストを含む特定のエレメント | "<title>charging</title>" | 所定のエレメントに該当テキスト (またはエレメント テキスト コンテンツ内に <title>charging</title>) を含むオブジェクト
|
| 特定の処理命令 | "<?xm-replace_text Paragraph?>" | 処理命令に所定の語句 (またはエレメント テキスト コンテンツ内に「xm replace text paragraph」) を含むオブジェクト |
| 特定のコメント | "<!--ExampleCorp, Inc., 1988-2009, v.4002-->" | 所定のコメント (またはテキスト コンテンツのどこか) (またはエレメント テキスト コンテンツ内に「examplecorp inc 1988 2009 v 4002」) を含むオブジェクト |
| XML エレメントの存在 (特殊ケース) | "<msgph/>" | <msgph> エレメント (空の <msgph> エレメントに限定されない) (またはエレメント テキスト コンテンツ内に「msgph」) を含むオブジェクト |
既知の制限
- バックスラッシュ (/) を含むテキストは検索できません。
- XML 構造によっては、入れ子になった XML エレメントを検索できない場合があります。