機械翻訳について

Javadoc検索の仕様

このドキュメントでは、JDK 17のJavadoc検索機能の動作について説明します。

概要

Javadoc検索機能は、JDK 9でJEP 225とともに導入されました。 ただし、初期指定に含まれるのは、検索アルゴリズムの基本的な記述のみです。 結果として、検索結果の選択やランク付けが必要になることがあります。

この追加指定の目的は、検索結果の選択およびランク付けに関するルールをより効率的に定義することによって、初期実装に対する改善です。

定義

entityという用語は、コード要素や追加の検索タグを含む、文書化されたコードのアーティファクトを説明するために使用されます。

signatureという用語は、Javadoc検索でエンティティがどのように表されるかを説明するために使用します。

nameおよびidentifierという用語は、「Java言語仕様」6.2で定義されたとおりに使用されます。

white spaceおよびseparatorという用語は、「Java言語仕様」3.6および「第3.11項」で定義されたとおりに使用されます。

camel-caseという用語は、大文字を使用して識別子内の単語境界をマークする、大/小文字混在の識別子を記述するために使用されます。

query stringという用語は、ユーザーが検索入力ボックスに入力した文字を説明するために使用します。

次の項のすべての例は、標準のOpenJDKクラス・ライブラリを参照するか、これらから抜粋しています。

検索可能なエンティティ

次のリストは、文書化されたコードのエンティティおよびそれらのシグネチャの作成方法を説明しています。 一部の要素では、シグネチャはエンティティ名のみで構成され、他の要素では、エンティティまたはパラメータのタイプを含めることに関する情報が含まれます。

モジュール

モジュールのシグネチャは、モジュール名と同じです。

例: - java.base

パッケージ

パッケージのシグネチャは、パッケージ名で構成されます。

パッケージが名前付きモジュールに属している場合は、モジュール名が/で区切られたシグネチャに追加され、検索に含めることができます。

例: - java.base/java.util.concurrent

(クラス、インタフェース、列挙、注釈型)の型のシグネチャは、型名で構成されています。

タイプがネストされたタイプである場合、親タイプの名前は.で区切られたシグネチャの先頭に追加され、検索に含めることができます。

タイプがパッケージに含まれている場合、パッケージ名は.で区切られたシグネチャに追加され、検索に含めることができます。

例: - java.lang.Object - java.util.Map.Entry

メンバー

(メソッド、コンストラクタ、フィールド)メンバーのシグネチャは、その定義タイプを.で区切って先頭に追加するメンバー名で構成されます。

メンバーがメソッドまたはコンストラクタの場合、パラメータのタイプ名は、(および)で囲まれた名前に追加され、オーバーロードされたメソッドを識別するために,によって区切られます。

例: - java.lang.Object.wait(long, int) - java.lang.String.String(String) - java.lang.Byte.MAX_VALUE

検索タグ

検索タグは、@indexタグを使用して、記述されたソース・コードのJavadocコメント内の任意の場所で定義された検索可能アイテムです。

例: - {@index "Java Collections Framework"} - {@index jrt jrt}

一致規則

次の各項では、エンティティ・シグネチャと照合される問合せ文字列の特殊なルールについて説明します。

大文字と小文字の区別

検索文字列に大文字が含まれている場合は、次の"キャメル・ケースの一致"の項で説明するように、大/小文字を区別した検索が実行されます。 キャメル・ケース検索で結果が生成されない場合やほとんど生成されない場合は、大/小文字を区別しない追加の検索が実行され、キャメル・ケース検索の結果があればその結果に追加されます。 この大/小文字を区別しない検索へのフォールバックは、カテゴリごとに実行されます。

検索文字列に大文字が含まれていない場合は、大/小文字を区別しない検索のみが実行されます。

例:

問合せ文字列 マッチ
Object タイプjava.lang.Object
object タイプjava.lang.Object
obJECT タイプjava.lang.Object
MAX_VALUE メンバーjava.lang.Byte.MAX_VALUE
max_value メンバーjava.lang.Byte.MAX_VALUE
max_VALUE メンバーjava.lang.Byte.MAX_VALUE

左の境界

問合せ文字列の先頭は、左ワード境界または左ワード境界の前にあるセパレータに一致する必要があります。

左ワード境界とみなされるのは、次のとおりです:

例:

問合せ文字列 マッチ
base モジュールjava.base
.util パッケージjava.util
map java.util.Mapjava.util.HashMapのタイプ
Map java.util.Mapjava.util.HashMapのタイプ
MAP java.util.Mapjava.util.HashMapのタイプ
.map タイプjava.util.Map
value メンバーjava.lang.Byte.MAX_VALUE

部分一致

問合せ文字列が識別子の先頭と一致するかぎり、名前識別子の末尾の文字が欠落していても、問合せ文字列は識別子と一致します。

例:

問合せ文字列 マッチ
j.l.o タイプjava.lang.Object
j.lang.Obj タイプjava.lang.Object

キャメル・ケースの一致

部分一致のルールは、大文字の後にキャメル文字の識別子の中で任意の数の小文字または非文字が続く場合にも適用されます。

問合せ文字列の大文字、0個以上の小文字または非準拠の文字が続く文字は、エンティティ・シグネチャの文字シーケンスと完全に同じで、0個以上の小文字または非プロセッサ文字が続くものと一致します。

例:

問合せ文字列 マッチ
j.io.FileInStr タイプjava.io.FileInputStream
j.io.FIS タイプjava.io.FileInputStream
j.io.FileInpS タイプjava.io.FileInputStream
j.io.FilEINPS 一致なし
FileInStr(FiD メンバーjava.io.FileInputStream.FileInputStream(FileDescriptor)
FIS(FD メンバーjava.io.FileInputStream.FileInputStream(FileDescriptor)
FINPS(FD 一致なし

コアおよび周辺機器の一致

エンティティ名を表すエンティティ・シグネチャの一部はシグネチャのコア・コンポーネントとみなされ、シグネチャのその他の部分は周辺コンポーネントとみなされます。

問合せ文字列にコア・コンポーネントの少なくとも一部が含まれ、一致する場合のみ、エンティティは検索結果に含まれます。

例:

問合せ文字列 マッチ
java.lang java.lang.Objectタイプではなくjava.langパッケージ。
java.util.Map タイプはjava.util.Mapですが、java.util.Map.Entryではありません

メソッドまたはコンストラクタのパラメータ・タイプは、そのシグネチャのコア・コンポーネントとはみなされませんが、(で検索文字列を開始することによって、特定のパラメータ・タイプを持つメソッドまたはコンストラクタを検索できます。

例:

問合せ文字列 マッチ
(int intが最初のパラメータ・タイプであるメソッドとコンストラクタ

子要素へのアクセス

コード要素に一致する問合せ文字列を検索文字列に入力すると、2レベルのコード要素を接続する際に使用するセパレータを追加することで、要素の子要素に一致します。

例:

問合せ文字列 マッチ
java.base モジュールjava.baseは格納されていますが、パッケージは含んでいません
java.base/ モジュールjava.baseに含まれるパッケージ
java.lang java.langをパッケージ化しますが、その中に含まれるタイプはパッケージしません
java.lang. パッケージjava.langに含まれる型
Object java.lang.Objectタイプ(メンバーは除く)
Object. java.lang.Objectタイプのメンバー

結果のランク付け

識別子全体に一致する結果は、大文字で始まるケース識別子のセグメントや識別子の先頭など、識別子の一部のみをカバーする一致より上位にランク付けされます。 識別子全体に一致する結果は、検索結果のリストの上位に表示されます。

例:

大/小文字を区別する検索と大/小文字を区別しない検索の両方を実行すると、大/小文字を区別しない検索の結果よりも高いランクが付けられます。

空白

問合せ文字列の空白は、コンテキストに応じて処理されます。

問合せ文字列またはシグネチャの実際の空白文字の数にかかわらず、空白は一致します。 問合せ文字列の1つ以上の空白文字が、シグネチャの1つ以上の空白文字と一致しています。

問合せ文字列全体が空白で構成されている場合、検索は実行されません。

例:

問合せ文字列 マッチ
obj.equals(o,o メソッドjava.util.Objects.equals(Object, Object)
obj .equals ( o , o メソッドjava.util.Objects.equals(Object, Object)
java coll 検索タグJava Collections Framework
lang obj 一致なし
ob j.eq 一致なし

サポートされるブラウザ

次のブラウザで検索機能がサポートされています:

ブラウザ バージョン Platform
Apple Safari tbd MacOS
Google Chrome tbd すべてのサポートされたOs
Microsoft Internet Explorer 11 Windows OSs
Microsoft Edge tbd Windows OSs
Mozilla Firefox tbd すべてのサポートされたOs