この記事は、Liferay DXPでのインデックス作成の仕組みに関する基本的な質問に答えることを目的としています。この情報は、Elasticsearch、Solr、またはその他の検索を使用するすべての検索プラットフォームに適用されます。インデックスの開発に関する完全な開発者向けの説明については、、以下をご参照ください。 検索.
影響を受ける製品
- Liferay DXP 7.0 - Liferay DXP Quarterly Releases (7.4)
内容
- インデックス化とは何か、そしてそれがどのように私のプラットフォームに役立つのか?
- Liferay DXPではどのようなエンティティがインデックス化されていますか?
- インデックスはいつ作成されますか?
- インデックスはいつ更新されますか?
- Liferayで再インデックスを「強制」できますか?
- 自分のエンティティがインデックス化されるようにコードを書くにはどうすればいいですか?
解決
インデックス化とは何か、そしてそれがどのように私のプラットフォームに役立つのか?
Liferayはその情報をデータベースに保存しているので、直接データベースを検索してみてはいかがでしょうか。 なぜ検索エンジンに複雑さを加えるのか? 第一に、データベースのテーブルマージはコストがかかるからです! 検索インデックス内のドキュメントには、データベース内の複数のテーブルから検索可能なフィールドが含まれていることが多い。 この方法で日付をトラバースするのは時間がかかりすぎます。
パフォーマンスの問題に加えて、検索エンジンは関連性やスコアリングのような追加機能へのアクセスを提供しています。 対照的に、データベースはファジー検索や関連性などの機能をサポートしていません。 さらに、検索エンジンは「もっとこうだ」などのアルゴリズムを適用して、類似したコンテンツを返すことができます。 検索エンジンは、ジオロケーション、検索結果のファセット、多言語検索にも対応しています。
Liferay DXPではどのようなエンティティがインデックス化されていますか?
ここでは、検索インデックスを活用したDXPエンティティの標準機能を紹介します。
- ブックマーク
- ブックマークフォルダ
- ブログエントリー
- カレンダー & カレンダーイベント
- カテゴリー
- リストエントリの変更
- カスタムフィールド(Expando)
- ドキュメントとメディアファイル
- ドキュメントとメディアフォルダ
- 動的データリストレコード
- 動的データマッピングフィールド(Webコンテンツ構造、フォームなど)
- 掲示板のメッセージとスレッド
- 組織
- アンケート
- セグメントエントリ
- システム設定
- タグ
- ユーザー
- ユーザーグループ
- Webコンテンツの記事
- Webコンテンツフォルダ
- Wikiページ
- ワークフローのメトリクス
カスタムエンティティのインデックスを作成するには、以下をご参照ください。
インデックスはいつ作成されますか?
初期検索インデックスは、ElasticsearchやSolrでDXPを初めて起動したときに、各仮想インスタンスに対して初期化されます。 すべてのエントリを完全にインデックス化するには、コントロールパネルから「インデックスの再作成」を実行する必要があります(以下を参照)。
インデックスはいつ更新されますか?
デフォルトでは、検索インデックスは、インデックス可能なエンティティが存在するたびに更新されます。
- 作成
- 変更
- 削除
Liferayで再インデックスを「強制」できますか?
ゼロから新しいインデックスを作成しなければならない理由はいくつかあります。 アップグレード後であっても、検索結果が正しく表示されない場合でも、既存のインデックスを削除して新しいインデックスを作成することが簡単にできます。
再インデックス化するために。
- 管理ユーザーとしてログインする
- コントロールパネル→設定→検索をクリックします(DXP 7.3ではインデックス管理タブをクリックする必要があります)。
- すべての検索インデックスの再インデックス化の実行ボタンをクリックしてから、すべてのスペルチェック辞書の再インデックスを行います。
エンティティの数によっては、再インデックス化に時間とメモリを要する作業になる場合がありますので、ご注意ください。 それに合わせて、再指標化のタイミングを計画してください。
自分のエンティティがインデックス化されるようにコードを書くにはどうすればいいですか?
この記事では、開発者がどのようにするかを具体的に説明しています。 インデックス作成フレームワーク