legacy-knowledge-base
公開されました Sep. 10, 2025

JournalArticleLocalServiceUtil クラスで「xml」を検索すると、すべてのコンテンツが返されます

written-by

Rita Schaff

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

問題

  • JournalArticleLocalServiceUtil クラスを使用して Web コンテンツ記事を検索する場合、フィールド コンテンツの xml タグが考慮されます。 したがって、「xml」を検索すると、すべての Web コンテンツ記事が返されます。

  • 結果の例:
    <?xml version="1.0"?> 
    <root available-locales="en_US" default-locale="en_US">
    <dynamic-element name="Summary" type="text_box" index-type="text" instance-id="pkih">
    <dynamic-content language-id="en_US"><![CDATA[Testes]]></dynamic-content>
    </dynamic-element>
    ...
    </root>

Environment

  • DXP 7.2

解決策

  • 使用している API が 検索インデックス クエリではなく データベース検索 を実行しているため、この動作は意図されています。
    OrderByComparator<JournalArticle> obc = OrderByComparatorFactoryUtil.create("JournalArticleLocalization", "title",true);

    List<JournalArticle> journalArticles= JournalArticleLocalServiceUtil.search(companyId, groupId, folderIds, classNameId, articleId, version, title, description, content, ddmStructureKeys, ddmTemplateKeys, displayDateGT, displayDateLT, status, reviewDate, andOperator, start, end, obc);
  • Liferay の検索ウィジェットとほとんどのアセット管理者は、 検索インデックス クエリを使用しています。 検索インデックスでは、有用な用語のみが保存され、XML 構造などのマークアップは、インデックス作成プロセス中に Liferay 側でエンティティから生のテキストが抽出されるときに削除されます。
  • 一方、 JournalArticles 、Web コンテンツ管理ポートレット (journal-web) にキーワードが追加された場合、上記の方法を使用して実際には検索されません。
    代わりにこのコード が使用されます。
  • このコードはパブリック API の一部ではありませんが (おそらくまだ)、記事の表示部分のみを使用して検索することが目標である場合は、キーワード検索にインデクサー アプローチを使用することをお勧めします。 上記の例を参考にして、ニーズに合わせて調整することをお勧めします。

did-this-article-resolve-your-issue

legacy-knowledge-base