構造体からのローカライズ可能でインデックス可能なフィールドを使用した並べ替えが機能しない
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
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちら までご連絡ください。
問題
構造体で定義されたローカライズ可能でインデックス可能なフィールドで並べ替えられた検索結果を取得しようとすると、構成された並べ替えウィジェットが正しく機能しません。
この問題は、次の手順で再現できます。
2 つのロケールでサイトを構成します。 たとえば、スペイン語 (デフォルト) と英語です。
いくつかのローカライズ可能でインデックス可能なフィールドを持つ構造を定義します。 たとえば、次のフィールド:
articleName price
構造 ID は、例えば 1184008 のようになります。
カスタム フィルター (検索ウィジェット) を構成して、構造でフィルター処理します。 この例に従って、ID 1184008 の構造用に構成します。
以前の構造フィールドを含む並べ替え (検索ウィジェット) を構成します。 以下に例を示します。
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-
デフォルトのロケールを使用して検索を実行します。予想および観察された動作は、事前定義された並べ替えウィジェット フィールド (relevance
, title
, modified+
, modified-
, createDate+
, ) の両方で、結果が正しく並べ替えられることです。 createDate-
、 userName
) および追加されたもの (ddm__keyword__1184008__articleName_es_ES
、 ddm__keyword__1184008__price_es_ES+
、 ddm__keyword__1184008__price_es_ES-
)。
サイトのロケールを変更して、検索を繰り返します。 観測された動作は、定義済みの並べ替えウィジェット フィールドに対してのみ結果が正しく並べ替えられ、追加されたフィールドに対しては正しく並べ替えられないことです。
解決策
並べ替えウィジェットを構成する場合、フィールド値は、接尾辞付きのロケールなしで定義する必要があります。 この例では:
Label: Name Field: ddm__keyword__1184008__articleName Label: Price ASC Field: ddm__keyword__1184008__price+ Label: Price DESC Field: ddm__keyword__1184008__price-
構造体でローカライズ可能と定義されているすべてのフィールドには、各ロケール翻訳の値を入力する必要があります。 すべてのロケールで同じ値を使用してフィールドをソートする場合は、フィールドをローカライズ可能として定義しないでください。
根本的な原因は、並べ替え操作により、並べ替えウィジェット構成で定義されたすべてのローカライズ可能なフィールドにロケールが追加されるため、ロケールを追加する必要がないことです。
did-this-article-resolve-your-issue