legacy-knowledge-base
公開されました Jul. 2, 2025

構造体からのローカライズ可能でインデックス可能なフィールドを使用した並べ替えが機能しない

written-by

Sergio Alonso

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

問題

  • 構造体で定義されたローカライズ可能でインデックス可能なフィールドで並べ替えられた検索結果を取得しようとすると、構成された並べ替えウィジェットが正しく機能しません。
  • この問題は、次の手順で再現できます。
  1. 2 つのロケールでサイトを構成します。 たとえば、スペイン語 (デフォルト) と英語です。
  2. いくつかのローカライズ可能でインデックス可能なフィールドを持つ構造を定義します。 たとえば、次のフィールド:
    articleName
    price
    構造 ID は、例えば 1184008 のようになります。
  3. カスタム フィルター (検索ウィジェット) を構成して、構造でフィルター処理します。 この例に従って、ID 1184008 の構造用に構成します。
  4. 以前の構造フィールドを含む並べ替え (検索ウィジェット) を構成します。 以下に例を示します。
    Label: Name 
    Field: ddm__keyword__1184008__articleName_es_ES

    Label: Price ASC
    Field: ddm__keyword__1184008__price_es_ES+

    Label: Price DESC
    Field: ddm__keyword__1184008__price_es_ES-
  5. デフォルトのロケールを使用して検索を実行します。予想および観察された動作は、事前定義された並べ替えウィジェット フィールド (relevance, title, modified+, modified-, createDate+, ) の両方で、結果が正しく並べ替えられることです。 createDate-userName) および追加されたもの (ddm__keyword__1184008__articleName_es_ESddm__keyword__1184008__price_es_ES+ddm__keyword__1184008__price_es_ES-)。
  6. サイトのロケールを変更して、検索を繰り返します。 観測された動作は、定義済みの並べ替えウィジェット フィールドに対してのみ結果が正しく並べ替えられ、追加されたフィールドに対しては正しく並べ替えられないことです。

Environment

  • ライフレイDXP 7.2、7.3

解決策

  • 考慮すべき重要な点が 2 つあります。
  1. 並べ替えウィジェットを構成する場合、フィールド値は、接尾辞付きのロケールなしで定義する必要があります。 この例では:
    Label: Name 
    Field: ddm__keyword__1184008__articleName

    Label: Price ASC
    Field: ddm__keyword__1184008__price+

    Label: Price DESC
    Field: ddm__keyword__1184008__price-
  2. 構造体でローカライズ可能と定義されているすべてのフィールドには、各ロケール翻訳の値を入力する必要があります。 すべてのロケールで同じ値を使用してフィールドをソートする場合は、フィールドをローカライズ可能として定義しないでください。
  • 根本的な原因は、並べ替え操作により、並べ替えウィジェット構成で定義されたすべてのローカライズ可能なフィールドにロケールが追加されるため、ロケールを追加する必要がないことです。
  • did-this-article-resolve-your-issue

    legacy-knowledge-base