2

AssetEntries を介してカスタム検索ポートレットを実装しようとしています。現在、AssetEntryQuery はキーワードによる検索を許可していません。FacetedSearcher を検索しようとしています。キーワード検索もOKのようです。しかし、AssetTagNames で検索しようとすると

searchContext.setAssetTagNames(assetTagNames)

まったく機能しません。ここに私のコードがあります

 SearchContext searchContext = new SearchContext();
         Facet assetEntriesFacet = new AssetEntriesFacet(searchContext);
         assetEntriesFacet.setStatic(true);
         searchContext.addFacet(assetEntriesFacet);

         /*MultiValueFacet multiValueFacet=new MultiValueFacet(searchContext);
         multiValueFacet.setFieldName("assetTagNames");
         multiValueFacet.setStatic(false);
         searchContext.addFacet(multiValueFacet);*/

       searchContext.setCompanyId(themeDisplay.getCompanyId());
       String []assetTagNames=new String[1];
        assetTagNames[0]=  assetTagName;
        searchContext.setAssetTagNames(assetTagNames);
        searchContext.setKeywords(keywords);
        String[] entryClassName = {JournalArticle.class.getName()};
        searchContext.setEntryClassNames(entryClassName);

        Indexer indexer = FacetedSearcher.getInstance();
       // searchContext.setAndSearch(true);
        Hits hits = indexer.search(searchContext);
        System.out.println("Hits: " + hits.getLength());

リクエスト searchKeyword の結果クエリ: key1key1 assetTagName: sometag

+(+(companyId:1) +((+(entryClassName:com.liferay.portlet.journal.model.JournalArticle) +(status:0)))) +(assetCategoryTitles:*key1key1* assetCategoryTitles_en_US:*key1key1* assetTagNames:*key1key1* comments:key1key1 content:key1key1 description:key1key1 properties:key1key1 title:key1key1 url:key1key1 userName:*key1key1* classPK:key1key1 content_en_US:key1key1 description_en_US:key1key1 entryClassPK:key1key1 title_en_US:key1key1 type:key1key1)

ご覧のとおり、AssetTag はクエリに適用されません。私はすでにそれを設定しようとしました

searchContext.setAttribute("assetTagNames",assetTagName);

MultiValueFacet コードをコメントしましたが、結果はありませんでした。さらに、dateRange とカテゴリで検索する必要があります。誰にもアイデアはありますか?

4

1 に答える 1