Webコンテンツの統一検索機能

By: Hitoshi Fujii

Abstract: CodeGearのWebコンテンツの検索エンジンが多言語対応となり新たに機能強化されました。

In This Article

統一Unicode検索エンジン

2008年9月17日(水)より、Luceneとよばれるオープンソースの検索技術をベースとした新しい検索エンジンが利用可能になりました。

新しい検索エンジンは、CodeGearの主要なすべてのWebサイトを検索対象としています。Luceneをベースとしているため、高度なフリーテキスト検索オプションも利用可能になっています。

新しい検索エンジンは、このページの右上に表示されている小さな検索ボックスに何かテキストを入力して[検索]ボタンをクリックすればすぐに利用できます。

新しい検索機能

検索機能の新しい強化ポイントは以下のとおりです。

主要なWebコンテンツすべてに対して検索ができます (CodeCentralQualityCentralブログ、およびすべてのGetPublished ベースのサイト)

高速な検索 (機能強化と同時に従来よりもハイパフォーマンスを実現)

CodeGear Webサイトでサポートしている任意の言語による検索に対応

"this is my phrase" のようなフレーズ検索

すべてのワード、ナンバーによるフルインデックス (ナンバーインデックスは、旧検索エンジンでは途中で切られていました)

CodeCentralのすべてのソースコードと構文強調表示 されたドキュメントの検索 (QualityCentralの添付ファイルの検索もまもなくインデックス化されます)。

CodeGearのWebサイトで複数のロケーションにマップされたコンテンツ表示の統合

タイプしているテキストに一致する文字列をリポジトリ内からツールチップのように表示するSearchInsight™機能も近々利用可能になります(SearchInsightは、SearchInSiteにかけています)。

高度な検索オプション

通常の検索では、望ましい結果が得られなかったときには、高度な検索オプションを使って、より細かい設定を行って検索を実行できます。 高度な検索オプションを指定するには、検索結果が表示されたページの Advanced Search リンクをクリックするか、ページ右上の[検索]リンクをクリックして表示される検索ページで、Advanced Search リンクをクリックします。

図1

ここでは、例えば、キーワードを特定の著者名(Author)、記事タイトル(title)、概要(abstract)、記事の内容(body)などに限定して検索を実行するように指定できます。

以下に各オプションの概要を記します。

オプション

説明

Find content

with all of the words

指定したすべてのキーワードを含む

with at least one of the words

指定したいずれかのキーワードを含む

without the words

指定したキーワードを含まない

Source code

Language

指定したプログラミング言語を含む(言語を指定した場合には、以下に説明する詳細オプションを指定できます)

Author

return articles written by

指定した著者による記事を含む

Language

return articles written in

指定した言語で記述された記事を含む

Type

return articles of the type

指定した種類の記事を含む

Sites

Current site

現在のサイトを含む

Selected sites

選択したサイトを含む(この項目を選択すると、サイトを選択するチェックボックスが表示されます)

All sites

すべてのサイトを含む

Community

return articles from the community

選択したコミュニティ(カテゴリ)を含む


ソースコード検索

ソースコードを検索したいときには、Source CodeのLanguageオプションで、サポートしているプログラミング言語を選択することができます。また、コード中のどの部分から検索したいかを、指定することもできます。

以下が、検索対象として選択可能なコード領域です。

  • Source code: すべてのソースコード、コメント、文字列を対象とします。
  • Code only: ソースコードと文字列を対照とし、コメントを無視します。
  • Comments: コメント文字列のみを検索対象にします。
  • Strings: ソースコードに含まれる文字列定数のみを検索対象にします。

CodeCentralで一致したソースコード検索では、ソースファイル名前がタイトルとして表示されます。リンクをクリックすると、投稿内容に直接ジャンプします。例えば、「C++ code that calls TClientDataSet」を検索すると、現在10件が一致します。これらの一致はそれぞれ、CodeCentralのアーカイブを検索して、TClientDataSetへの参照を含むファイルを表示します。これらは、YAPPを使ってソースコードを構文強調表示します。上記のリンクをクリックして、実際の動作をご確認ください。

ソースコードが特定の記事で一致することを発見したときには、リンクは記事に直接ジャンプします。近い将来、ソースコードやドキュメントで、キーワードに一致する箇所を自動的にハイライトする便利なJavaScriptコールを作成したいと思っていますが、新しい検索エンジンをまず利用可能にすることが先決であると判断しました。

"code only""comments""strings"オプションは、検索でソースコードのプログラミング言語を指定したときのみ有効です。

母国語による検索範囲の制限

言語によるフィルターを設定すると、選択した言語のコンテンツのみが検索結果として表示されます。「My Preferred Language」を選択したときには、コンテンツは以下のルールに従って、フィルタリングされます。

  • 記事は、CDNの言語設定に従って自動的にフィルタリングされます。検索結果には、指定している言語の記事と、翻訳記事がない場合には、英語のオリジナル記事が表示されます。
  • CodeCentral やQualityCentralのように翻訳サポートをしていないサイトの記事については、言語によるフィルタリングは行われません。

コミュニティを指定した検索範囲の制限

上記の画面ショットの一番下に表示されている「community」ドロップダウンは、特定のサイトを検索対象としているときに、コミュニティ(カテゴリ)を指定して検索対象とすることができます。すべてのサイトを検索対象としたときには、「Any Community」のみ選択可能です。

複数のロケーションにマッピングされているコンテンツのリンク表示

GetPublishedのコンテンツでは、しばしば複数のロケーションにマッピングしている場合があります。

従来の検索インターフェイスでは、同じコンテンツに別々のリンクが表示されていたために、しばしば混乱がありました。現在では、このようなマルチマッピングコンテンツについては、単一のリスト項目として表示されます。以下が、その画面ショットの例です。

上記の2番目の項目は、サイトの一覧ページに表示される「welcome」記事が検索結果に表示された例です。この記事は、Delphi、C++、Java、InterBase、BlackfishSQL、PHPコミュニティにマップされており、それぞれサイト上の異なるURLで表示されるため、タイトルの下に複数のリンクが表示されています。

また、いくつかのコンテンツは、support、www、あるいはデベロッパーネットワークサイトにマップされています。このようなケースでも、新しい検索結果リストでは、単一の項目のみを表示します。

検索フィードの購読

これまでの検索エンジンでも利用可能であって、大変便利であると感じながらも、あまり知られていなかった機能のひとつに、検索フィードの購読機能があります。検索結果ページには、RSSとAtomアイコンがあり、これを使って、指定した検索結果のフィードを購読できます。この方法を用いれば、CodeGearのすべてのWebサイトを対象としたコンテンツアップデートの自動通知を完全にカスタマイズして設定することができます。

次のステップ

ユーザー検索設定の保存、検索結果のコンテンツリンクでの一致項目のハイライトなど、まだまだ多くの機能を検索エンジンに追加したいと考えています。ぜひ、QualityCentralのSearchエリア を使って、バグのレポートや新しい検索エンジンで使いたい機能などの要求を上げてください。

皆さんが望むものをぜひ作っていきたいと考えていますので、よろしくお願いします。

John Kaster
Internet Services Architect
Embarcadero


Published on: 9/23/2008 7:45:53 PM

Server Response from: ETNASC03

Copyright© 1994 - 2013 Embarcadero Technologies, Inc. All rights reserved.