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

構造体の 2 つのフィールドに対してカスタム フィルター ウィジェットを使用して日付範囲クエリを実行する

written-by

Jorge García Jiménez

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 つの ddm-date フィールドを持つカスタム Web コンテンツ構造があります。 カスタム フィルター ウィジェットを使用して、これら 2 つのフィールド間の日付の範囲を検索およびフィルター処理したいと考えています。

Environment

  • Liferay DXP 7.3

解決策


重要な注意: 「カスタム フィルター」 ウィジェットを使用する代わりに、 「ブループリントの検索」 機能を利用することも可能です。これにより、Elasticsearch クエリを Liferay 検索機能に直接適用できます。詳細については、次を参照してください。


ElasticSearch を使用して、次のようなネストされたクエリを作成する必要があります。

{
"query": {
"nested": {
"path": "ddmFieldArray",
"query": {
"bool": {
"must": [{
"range": {
"ddmFieldArray.ddmFieldValueKeyword_en_US_String_sortable": {
"gte": "2021-07-01",
"lt": "2021-12-28"
}
}
}]
}
},
"score_mode": "avg"
}
}
}

Liferay Custom Filter Widget を使用して、以下の構造を作成する必要があります。

1 つの親フィルターと 2 つの子フィルター。

例ごと:

最初の日付フィールド:

フィルタリングするフィールドの名前: ddm__keyword__38106__date1_en_US

日付範囲 [2021-07-01 ~ 2021-12-28] 両方の日付を含む

  • 最初のカスタム フィルター ウィジェット: (親)
    • フィルタ フィールド: ddmFieldArray
    • フィルター値: (空)
    • フィルタ クエリ タイプ: ネスト
    • 発生: フィルタ
    • クエリ名: nested_query
    • 親クエリ名: (空)
  • 秒のカスタム フィルター: (最初の子)
    • フィルタ フィールド: ddmFieldArray.ddmFieldName
    • フィルター値: ddm__keyword__38106__date1_en_US
    • フィルタ クエリ タイプ: 一致
    • 発生: フィルタ
    • クエリ名: (空)
    • 親クエリ名: nested_query
  • 3 番目のカスタム フィルター: (2 番目の子)
    • フィルター フィールド: ddmFieldArray.ddmFieldValueKeyword_en_US_String_sortable
    • フィルタ値: [2021-07-01 2021-12-28]
    • フィルタ クエリ タイプ: 範囲
    • 発生: フィルタ
    • クエリ名: (空)
    • 親クエリ名: nested_query

2 番目の日付フィールド:

フィルタリングするフィールドの名前: ddm__keyword__38106__date2_en_US

日付範囲 [2021-07-01 ~ 2021-12-28] 両方の日付を含む

  • 最初のカスタム フィルター ウィジェット: (親)
    • フィルタ フィールド: ddmFieldArray
    • フィルター値: (空)
    • フィルタ クエリ タイプ: ネスト
    • 発生: フィルタ
    • クエリ名: nested_query_2
    • 親クエリ名: (空)
  • 秒のカスタム フィルター: (最初の子)
    • フィルタ フィールド: ddmFieldArray.ddmFieldName
    • フィルター値: ddm__keyword__38106__date2_en_US
    • フィルタ クエリ タイプ: 一致
    • 発生: フィルタ
    • クエリ名: (空)
    • 親クエリ名: nested_query_2
    • 3 番目のカスタム フィルター: (2 番目の子)
      • フィルター フィールド: ddmFieldArray.ddmFieldValueKeyword_en_US_String_sortable
      • フィルタ値: [2021-07-01 2021-12-28]
      • フィルタ クエリ タイプ: 範囲
      • 発生: フィルタ
      • クエリ名: (空)
      • 親クエリ名: nested_query_2

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base