legacy-knowledge-base
公開されました Jun. 30, 2025

異なるElasticsearchインデックスを検索した場合の結果の表示方法

written-by

Jose L. Bango

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 低レベル検索オプション機能を使用すると、フェデレート検索を実行することにより、代替インデックスを検索することができます。
  • 通常の検索(Liferayの検索結果)では、SearchResultSummaryDisplayContexを使ってデータを取得し、検索結果を表示することができます。 これは、すぐに使えるウィジェット表示テンプレートで見ることができるエントリーオブジェクトで得られるものです。 しかし、これは代替指標では利用できない。
  • では、ドキュメントのフィールドにアクセスし、その結果を表示するにはどうすればいいのでしょうか?

環境

  • DXP 7.3, DXP 7.4
  • 2023年第3四半期, 2023年第4四半期, 2024年第1四半期

解像度

  • SearchResultsPortletDisplayContextを活用して、検索エンジンのドキュメントにアクセスし、それらを反復処理することができます。
  • ここでは、検索結果ウィジェット表示テンプレート内でそれを行う方法の例を示します:
    <div class="search-total-label">
    ${languageUtil.format(locale, "x-results-for-x", [searchContainer.getTotal(), "<strong>" + htmlUtil.escape(searchResultsPortletDisplayContext.getKeywords()) + "</strong>"], false)}
    </div>

    <div class="display-list">
    <ul>
    <#list searchResultsPortletDisplayContext.getDocuments() as document>
    <#assign searchResultSummaryDisplayContext = searchResultsPortletDisplayContext.getSearchResultSummaryDisplayContext(document) />
    <li><strong>Title: </strong>${document.get("title_es_ES")}
    <ul>
    <li><strong>Modified:</strong> ${document.get("modified")}</li>
    <li><strong>Id:</strong> ${document.get("articleId")}</li>
    <li><strong>Site Id:</strong> ${document.get("groupId")}</li>
    </ul>
    </li>
    </#list>
    </ul>
    </div>

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base