Liferay DXPの検索とインデックス作成に関するFAQ

この記事は、Liferay DXPでのインデックス作成の仕組みに関する基本的な質問に答えることを目的としています。 この情報は、Elasticsearch、Solr、またはその他の検索を使用しているかどうかに関係なく、すべての検索プラットフォームに適用されます。 インデックスの開発に関する開発者の完全な扱いについては、次を参照してください 検索の概要

影響を受ける製品

Liferay DXP 7.0、DXP 7.1、DXP 7.2

目次

  1. インデックス付けとは何ですか?それは私のプラットフォームにどのように役立ちますか?
  2. Liferay DXPでは、どのような種類のエンティティにインデックスが付けられますか?
  3. インデックスはいつ作成されますか?
  4. インデックスはいつ更新されますか?
  5. Liferayでインデックスを「強制」できますか?
  6. エンティティにインデックスを作成できるようにコードを作成するにはどうすればよいですか?

解決

インデックス付けとは何ですか?それは私のプラットフォームにどのように役立ちますか?

Liferayはその情報をデータベースに保存します。データベースを直接検索してみませんか? なぜ検索エンジンの複雑さを追加するのですか? まず、データベーステーブルのマージにはコストがかかるためです。 多くの場合、検索インデックス内のドキュメントには、データベース内の複数のテーブルからの検索可能なフィールドが含まれています。 この方法で日付をトラバースするには時間がかかりすぎます。

パフォーマンスの問題に加えて、検索エンジンは関連性やスコアリングなどの追加機能へのアクセスを提供します。 対照的に、データベースはあいまい検索や関連性などの機能をサポートしていません。 さらに、検索エンジンは、「More Like This」などのアルゴリズムを適用して、同様のコンテンツを返すことができます。 検索エンジンは、地理位置情報、検索結果のファセット、および多言語検索もサポートしています。

Liferay DXPでは、どのような種類のエンティティにインデックスが付けられますか?

すぐに使用できる検索インデックスを使用するDXPエンティティは次のとおりです。

  • ブックマークエントリ
  • ブックマークフォルダ
  • ブログのエントリ
  • カレンダー & カレンダーイベント
  • カテゴリー
  • リストエントリの変更
  • カスタムフィールド(Expando)
  • ドキュメントとメディアファイル
  • ドキュメントとメディアフォルダー
  • 動的データリストレコード
  • 動的データマッピングフィールド(Webコンテンツ構造、フォームなど)
  • 掲示板のメッセージとスレッド
  • 組織
  • 世論調査
  • セグメントのエントリ
  • システム設定
  • タグ
  • ユーザー
  • ユーザーグループ
  • Webコンテンツの記事
  • Webコンテンツフォルダー
  • Wikiページ
  • ワークフローメトリック

カスタムエンティティのインデックスを作成するには、次をお読みください:

インデックスはいつ作成されますか?

最初の検索インデックスは、ElasticsearchまたはSolrでDXPを初めて起動したときに、各仮想インスタンスに対して初期化されます。 すべてのエントリに完全にインデックスを付けるには、コントロールパネルから「再インデックス」を実行する必要があります(以下を参照)。

インデックスはいつ更新されますか?

デフォルトでは、インデックス作成可能なエンティティが次のようになるたびに、検索インデックスが更新されます。

  • 作成した
  • 修正
  • 削除しました

Liferayでインデックスを「強制」できますか?

新しいインデックスを最初から作成する必要がある理由はいくつかあります。 アップグレード後の場合でも、検索で正しい結果が得られない場合でも、既存のインデックスを削除して新しいインデックスを作成するのが簡単になりました。

インデックスを再作成するには:

  1. 管理ユーザーとしてログインします
  2. [コントロールパネル]→[構成]→[検索]をクリックします
  3. [実行]ボタンをクリックして、すべての検索インデックスのインデックスを再作成してから、すべてのスペルチェックインデックスのインデックスを再作成します。

エンティティの数によっては、インデックスの再作成に時間がかかり、メモリを大量に消費する可能性があることに注意してください。 それに応じて再インデックスのタイミングを計画してください。

エンティティにインデックスを作成できるようにコードを作成するにはどうすればよいですか?

この記事では、開発者がその方法を正確に文書化しました インデックスフレームワーク

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています