Example usage for com.liferay.portal.kernel.search Field TITLE

List of usage examples for com.liferay.portal.kernel.search Field TITLE

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.search Field TITLE.

Prototype

String TITLE

To view the source code for com.liferay.portal.kernel.search Field TITLE.

Click Source Link

Usage

From source file:com.liferay.docs.guestbook.search.GuestbookKeywordQueryContributor.java

License:Open Source License

@Override
public void contribute(String keywords, BooleanQuery booleanQuery,
        KeywordQueryContributorHelper keywordQueryContributorHelper) {

    SearchContext searchContext = keywordQueryContributorHelper.getSearchContext();

    queryHelper.addSearchLocalizedTerm(booleanQuery, searchContext, Field.TITLE, false);
}

From source file:com.liferay.docs.guestbook.search.GuestbookModelDocumentContributor.java

License:Open Source License

@Override
public void contribute(Document document, Guestbook guestbook) {
    try {/*from   w  ww  .j av a 2s . co  m*/
        document.addDate(Field.MODIFIED_DATE, guestbook.getModifiedDate());

        Locale defaultLocale = PortalUtil.getSiteDefaultLocale(guestbook.getGroupId());

        String localizedTitle = LocalizationUtil.getLocalizedName(Field.TITLE, defaultLocale.toString());

        document.addText(localizedTitle, guestbook.getName());
    } catch (PortalException pe) {
        if (_log.isWarnEnabled()) {
            _log.warn("Unable to index guestbook " + guestbook.getGuestbookId(), pe);
        }
    }
}

From source file:com.liferay.docs.guestbook.search.GuestbookModelSummaryContributor.java

License:Open Source License

private Summary createSummary(Document document) {
    String prefix = Field.SNIPPET + StringPool.UNDERLINE;

    String title = document.get(prefix + Field.TITLE, Field.TITLE);

    return new Summary(title, StringPool.BLANK);
}

From source file:com.liferay.docs.guestbook.search.GuestbookSearchRegistrar.java

License:Open Source License

@Activate
protected void activate(BundleContext bundleContext) {

    _serviceRegistration = modelSearchRegistrarHelper.register(Guestbook.class, bundleContext,
            modelSearchDefinition -> {
                modelSearchDefinition.setDefaultSelectedFieldNames(Field.ASSET_TAG_NAMES, Field.COMPANY_ID,
                        Field.CONTENT, Field.ENTRY_CLASS_NAME, Field.ENTRY_CLASS_PK, Field.GROUP_ID,
                        Field.MODIFIED_DATE, Field.SCOPE_GROUP_ID, Field.TITLE, Field.UID);

                modelSearchDefinition.setModelIndexWriteContributor(modelIndexWriterContributor);
                modelSearchDefinition.setModelSummaryContributor(modelSummaryContributor);
            });//from w  ww  .  j a  v a 2s  . c  om
}

From source file:com.liferay.document.library.repository.cmis.internal.CMISRepository.java

License:Open Source License

protected Hits doSearch(SearchContext searchContext, Query query) throws Exception {

    long startTime = System.currentTimeMillis();

    Session session = getSession();//  ww w.  j  a va2  s .  c o m

    RepositoryInfo repositoryInfo = session.getRepositoryInfo();

    RepositoryCapabilities repositoryCapabilities = repositoryInfo.getCapabilities();

    QueryConfig queryConfig = searchContext.getQueryConfig();

    CapabilityQuery capabilityQuery = repositoryCapabilities.getQueryCapability();

    queryConfig.setAttribute("capabilityQuery", capabilityQuery.value());

    String productName = repositoryInfo.getProductName();
    String productVersion = repositoryInfo.getProductVersion();

    queryConfig.setAttribute("repositoryProductName", productName);
    queryConfig.setAttribute("repositoryProductVersion", productVersion);

    String queryString = _cmisSearchQueryBuilder.buildQuery(searchContext, query);

    if (_cmisRepositoryDetector.isNuxeo5_4()) {
        queryString += " AND (" + PropertyIds.IS_LATEST_VERSION + " = true)";
    }

    if (_log.isDebugEnabled()) {
        _log.debug("CMIS search query: " + queryString);
    }

    boolean searchAllVersions = _cmisRepositoryDetector.isNuxeo5_5OrHigher();

    ItemIterable<QueryResult> queryResults = session.query(queryString, searchAllVersions);

    int start = searchContext.getStart();
    int end = searchContext.getEnd();

    if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS)) {
        start = 0;
    }

    int total = 0;

    List<com.liferay.portal.kernel.search.Document> documents = new ArrayList<>();
    List<String> snippets = new ArrayList<>();
    List<Float> scores = new ArrayList<>();

    for (QueryResult queryResult : queryResults) {
        total++;

        if (total <= start) {
            continue;
        }

        if ((total > end) && (end != QueryUtil.ALL_POS)) {
            continue;
        }

        com.liferay.portal.kernel.search.Document document = new DocumentImpl();

        String objectId = queryResult.getPropertyValueByQueryName(PropertyIds.OBJECT_ID);

        if (_log.isDebugEnabled()) {
            _log.debug("Search result object ID " + objectId);
        }

        FileEntry fileEntry = null;

        try {
            fileEntry = toFileEntry(objectId, true);
        } catch (Exception e) {
            if (_log.isDebugEnabled()) {
                Throwable cause = e.getCause();

                if (cause != null) {
                    cause = cause.getCause();
                }

                if (cause instanceof CmisObjectNotFoundException) {
                    _log.debug("Search result ignored for CMIS document which "
                            + "has a version with an invalid object ID " + cause.getMessage());
                } else {
                    _log.debug("Search result ignored for invalid object ID", e);
                }
            }

            total--;

            continue;
        }

        DocumentHelper documentHelper = new DocumentHelper(document);

        documentHelper.setEntryKey(fileEntry.getModelClassName(), fileEntry.getFileEntryId());

        document.addKeyword(Field.TITLE, fileEntry.getTitle());

        documents.add(document);

        if (queryConfig.isScoreEnabled()) {
            Object scoreObj = queryResult.getPropertyValueByQueryName("HITS");

            if (scoreObj != null) {
                scores.add(Float.valueOf(scoreObj.toString()));
            } else {
                scores.add(1.0F);
            }
        } else {
            scores.add(1.0F);
        }

        snippets.add(StringPool.BLANK);
    }

    float searchTime = (float) (System.currentTimeMillis() - startTime) / Time.SECOND;

    Hits hits = new HitsImpl();

    hits.setDocs(documents.toArray(new com.liferay.portal.kernel.search.Document[documents.size()]));
    hits.setLength(total);
    hits.setQuery(query);
    hits.setQueryTerms(new String[0]);
    hits.setScores(ArrayUtil.toFloatArray(scores));
    hits.setSearchTime(searchTime);
    hits.setSnippets(snippets.toArray(new String[snippets.size()]));
    hits.setStart(startTime);

    return hits;
}

From source file:com.liferay.document.library.repository.external.ExtRepositoryAdapter.java

License:Open Source License

@Override
public Hits search(SearchContext searchContext, Query query) throws SearchException {

    long startTime = System.currentTimeMillis();

    List<ExtRepositorySearchResult<?>> extRepositorySearchResults = null;

    try {/*from ww  w.j  ava 2s.c om*/
        extRepositorySearchResults = _extRepository.search(searchContext, query,
                new ExtRepositoryQueryMapperImpl(this));
    } catch (PortalException | SystemException e) {
        throw new SearchException("Unable to perform search", e);
    }

    QueryConfig queryConfig = searchContext.getQueryConfig();

    List<Document> documents = new ArrayList<>();
    List<String> snippets = new ArrayList<>();
    List<Float> scores = new ArrayList<>();

    int total = 0;

    for (ExtRepositorySearchResult<?> extRepositorySearchResult : extRepositorySearchResults) {

        try {
            ExtRepositoryObjectAdapter<?> extRepositoryEntryAdapter = _toExtRepositoryObjectAdapter(
                    ExtRepositoryObjectAdapterType.OBJECT, extRepositorySearchResult.getObject());

            Document document = new DocumentImpl();

            document.addKeyword(Field.ENTRY_CLASS_NAME, extRepositoryEntryAdapter.getModelClassName());
            document.addKeyword(Field.ENTRY_CLASS_PK, extRepositoryEntryAdapter.getPrimaryKey());
            document.addKeyword(Field.TITLE, extRepositoryEntryAdapter.getName());

            documents.add(document);

            if (queryConfig.isScoreEnabled()) {
                scores.add(extRepositorySearchResult.getScore());
            } else {
                scores.add(1.0F);
            }

            snippets.add(extRepositorySearchResult.getSnippet());

            total++;
        } catch (PortalException | SystemException e) {
            if (_log.isWarnEnabled()) {
                _log.warn("Invalid entry returned from search", e);
            }
        }
    }

    float searchTime = (float) (System.currentTimeMillis() - startTime) / Time.SECOND;

    Hits hits = new HitsImpl();

    hits.setDocs(documents.toArray(new Document[documents.size()]));
    hits.setLength(total);
    hits.setQueryTerms(new String[0]);
    hits.setScores(ArrayUtil.toFloatArray(scores));
    hits.setSearchTime(searchTime);
    hits.setSnippets(snippets.toArray(new String[snippets.size()]));
    hits.setStart(startTime);

    return hits;
}

From source file:com.liferay.document.library.repository.search.internal.RepositorySearchQueryBuilderImpl.java

License:Open Source License

protected void addSearchKeywords(BooleanQuery searchQuery, SearchContext searchContext) throws Exception {

    String keywords = searchContext.getKeywords();

    if (Validator.isNull(keywords)) {
        return;//w w  w.  j a va2 s . c o m
    }

    BooleanQuery titleQuery = new BooleanQueryImpl();

    _repositorySearchQueryTermBuilder.addTerm(titleQuery, searchContext, Field.TITLE, keywords);

    if (titleQuery.hasClauses() && !contains(searchQuery, titleQuery)) {
        searchQuery.add(titleQuery, BooleanClauseOccur.SHOULD);
    }

    BooleanQuery userNameQuery = new BooleanQueryImpl();

    _repositorySearchQueryTermBuilder.addTerm(userNameQuery, searchContext, Field.USER_NAME, keywords);

    if (userNameQuery.hasClauses() && !contains(searchQuery, userNameQuery)) {

        searchQuery.add(userNameQuery, BooleanClauseOccur.SHOULD);
    }

    BooleanQuery contentQuery = new BooleanQueryImpl();

    _repositorySearchQueryTermBuilder.addTerm(contentQuery, searchContext, Field.CONTENT, keywords);

    if (contentQuery.hasClauses() && !contains(searchQuery, contentQuery)) {
        searchQuery.add(contentQuery, BooleanClauseOccur.SHOULD);
    }
}

From source file:com.liferay.dynamic.data.lists.internal.search.DDLRecordIndexer.java

License:Open Source License

public DDLRecordIndexer() {
    setDefaultSelectedFieldNames(Field.COMPANY_ID, Field.ENTRY_CLASS_NAME, Field.ENTRY_CLASS_PK, Field.UID);
    setDefaultSelectedLocalizedFieldNames(Field.DESCRIPTION, Field.TITLE);
    setPermissionAware(true);//from  w w w.  j a  v a 2 s.  com
}

From source file:com.liferay.dynamic.data.lists.internal.search.DDLRecordIndexer.java

License:Open Source License

@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
        PortletResponse portletResponse) {

    long recordSetId = GetterUtil.getLong(document.get("recordSetId"));

    String title = getTitle(recordSetId, locale);

    Summary summary = createSummary(document, Field.TITLE, Field.DESCRIPTION);

    summary.setMaxContentLength(200);//from  w w  w.ja  v a  2s . c om
    summary.setTitle(title);

    return summary;
}

From source file:com.liferay.dynamic.data.lists.internal.search.DDLRecordSetIndexer.java

License:Open Source License

@Override
protected Summary doGetSummary(Document document, Locale locale, String snippet, PortletRequest portletRequest,
        PortletResponse portletResponse) throws Exception {

    return createSummary(document, Field.TITLE, Field.DESCRIPTION);
}