GroupDocs.Search を使用した Java での同義語検索方法

ユーザーが異なる単語で入力しても正しいコンテンツを見つけられるようにしたい場合、search with synonyms が解決策です。このガイドでは、同義語辞書の作成、インポート/エクスポート、同義語グループの管理、そして同義語を使用してクエリを自動的に拡張する検索の実行まで、必要なすべての手順を解説します。CMS、e‑コマースカタログ、法務文書リポジトリのいずれを構築していても、同義語サポートを追加することで関連性とコンバージョン率が大幅に向上します。

Quick Answers

  • 同義語を追加するための主な手順は? Index を初期化し、SynonymDictionary API を使用します。
  • 同義語辞書をインポートできますか? はい – importDictionary(path) を使用して事前に作成したファイルを読み込みます。
  • 同義語検索を有効にする方法は? SearchOptions.setUseSynonymSearch(true) を設定します。
  • 同義語グループを管理できますか? もちろんです – 辞書 API を通じてグループのクリア、追加、取得が可能です。
  • 検索インデックスを最適化する際に考慮すべきことは? 未使用エントリを定期的に削除し、大規模データセット向けに JVM ヒープを調整します。

What Is Search with Synonyms?

“Search with synonyms” とは、エンジンが単語やフレーズの集合を相互に置き換え可能とみなすことを指します。ユーザーが “better” と入力すると、エンジンは “improve”“enhance”、または同義語グループに定義したその他の語も検索対象にし、ユーザーのクエリを変更せずにより豊富な結果を提供します。

Why Enable Synonym Support in GroupDocs.Search?

  • ユーザー体験の向上: 用語が異なっていても訪問者は関連文書を見つけられます。
  • コンバージョン率の向上: e‑コマースプラットフォームは、さまざまな商品用語にマッチさせることで売上を増やせます。
  • 保守の簡素化: 1 つの中央辞書で複数のアプリケーションを支え、更新作業が楽になります。

Prerequisites

  • GroupDocs.Search for Java バージョン 25.4 以上。
  • Maven 対応の Java IDE(IntelliJ IDEA、Eclipse など)。
  • 基本的な Java 知識と Maven プロジェクト構造の理解。

Required Libraries and Versions

  • GroupDocs.Search for Java バージョン 25.4 以上。

Environment Setup

  • お好みの IDE(IntelliJ IDEA、Eclipse など)。
  • 依存関係管理のための Maven。

Knowledge Requirements

  • Java のオブジェクト指向プログラミング。
  • 基本的なファイル I/O 操作。

Setting Up GroupDocs.Search for Java

Installation Information

pom.xml にリポジトリと依存関係を追加します:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/search/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-search</artifactId>
      <version>25.4</version>
   </dependency>
</dependencies>

Direct Download – 最新の JAR は GroupDocs.Search for Java releases からもダウンロード可能です。

License Acquisition

  • Free Trial: ライセンスなしでコア機能をテストできます。
  • Temporary License: 評価期間中に機能を拡張できます。
  • Purchase: 本番環境での使用とフル機能セットにはライセンスが必要です。

Basic Initialization and Setup

Index インスタンスを作成し、検索対象のドキュメントを追加します:

import com.groupdocs.search.*;

String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Index";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath2";

// Creating an index in the specified folder
Index index = new Index(indexFolder);

// Adding documents from a specific folder to the index
index.add(documentsFolder);

How to Add Synonyms to Your Search Index

インデックスの作成が基盤です。以下では、必要な手順をそれぞれコード例と共に解説します。

Feature 1: Creating and Indexing an Index

// Create an index in the specified folder
Index index = new Index(indexFolder);

// Add documents from the given folder to the index
index.add(documentsFolder);

Feature 2: Retrieving Synonyms for a Word

String[] synonyms = index.getDictionaries().getSynonymDictionary().getSynonyms("make");

Feature 3: Retrieving Synonym Groups

String[][] synonymGroups = index.getDictionaries().getSynonymDictionary().getSynonymGroups("make");

Feature 4: Managing Synonym Dictionary Entries

if (index.getDictionaries().getSynonymDictionary().getCount() > 0) {
    index.getDictionaries().getSynonymDictionary().clear();
}

String[][] newSynonymGroups = new String[][]{
    new String[] { "achieve", "accomplish", "attain", "reach" },
    new String[] { "accept", "take", "have" },
    new String[] { "improve", "better" }
};

index.getDictionaries().getSynonymDictionary().addRange(newSynonymGroups);

Feature 5: Exporting Synonyms to a File

String exportFilePath = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Synonyms.dat";
index.getDictionaries().getSynonymDictionary().exportDictionary(exportFilePath);

Feature 6: Importing Synonyms from a File

index.getDictionaries().getSynonymDictionary().importDictionary(exportFilePath);

Feature 7: Performing Search with Synonym Support

String query = "better";
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true);

SearchResult result = index.search(query, options);

How to Search with Synonyms

setUseSynonymSearch(true) を有効にすると、エンジンは構築またはインポートした同義語辞書を使ってクエリを自動的に拡張します。このステップは、ユーザーの検索行動を変えずにリッチな結果を提供するために重要です。

How to Import Synonym Dictionary

別環境で作成した .dat ファイルがある場合は、importDictionary(path) を呼び出すだけでインポートできます。開発、ステージング、本番サーバー間で辞書を同期するのに最適です。

How to Manage Synonym Groups

同義語グループは、複数の語を単一の論理エンティティとして扱う機能です。グループの追加、クリア、取得は SynonymDictionary API を通じて行い、上記コードスニペットに示した通りです。

How to Optimize Search Index

  • 未使用エントリを定期的に削除: バルク更新前に clear() を使用します。
  • JVM ヒープを調整: 大規模な辞書はメモリを多く必要とするため、ヒープサイズを増やします。
  • ライブラリを最新に保つ: 新しいリリースにはパフォーマンス改善が含まれます。

Practical Applications

  1. Content Management Systems (CMS): 用語が異なっていても記事を見つけられます。
  2. E‑commerce Platforms: 「laptop」対「notebook」など、同義語に寛容な商品検索が可能です。
  3. Document Repositories: 法務や医療のアーカイブは、ドメイン固有の同義語グループから恩恵を受けます。

Performance Considerations

  • インデックスストレージの最適化: 定期的にインデックスを再構築し、古いデータを除去します。
  • メモリ使用量の管理: 大容量の同義語ファイルをロードする際はヒープ消費を監視します。
  • 定期的な更新: バグ修正と速度向上のため、常に最新の GroupDocs.Search バージョンを使用してください。

Common Issues and Solutions

IssueLikely CauseFix
同義語マッチが表示されないsetUseSynonymSearch(true) が設定されていない、または辞書がインポートされていないオプションが有効かつ辞書ファイルが存在することを確認してください。
インポート時にメモリ不足エラー非常に大きな .dat ファイルが JVM ヒープを超えている-Xmx ヒープサイズを増やすか、より小さなバッチに分割してインポートしてください。
結果に重複エントリが出る同じ語が複数の同義語グループに含まれているclear() 後に addRange() で重複グループを統合してください。

Frequently Asked Questions

Q: GroupDocs.Search を使用するための最低システム要件は何ですか?
A: JDK(Java 8 以上)に対応した最新 OS であれば問題ありません。

Q: 同義語辞書はどの頻度で更新すべきですか?
A: 新しい用語が出たときに更新します。clear()addRange() を組み合わせてクリーンリフレッシュが可能です。

Q: ライセンスを購入せずに GroupDocs.Search を実行できますか?
A: 無料トライアルは評価に利用できますが、本番環境での使用にはライセンスが必要です。

Q: 大規模データセットをインデックス化するベストプラクティスは?
A: データを論理バッチに分割し、ヒープ使用量を監視し、定期的なインデックスメンテナンスをスケジュールしてください。

Q: 期待した同義語マッチが出ない場合、何を確認すべきですか?
A: 辞書が正しくインポートされているか、setUseSynonymSearch(true) が有効か、対象語が同義語グループに含まれているかを確認してください。

Resources


Last Updated: 2026-03-04
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs