Liferay搜索命中仅返回一个用户

时间:2016-10-24 22:07:39

标签: jsp liferay

我正在尝试从Liferay实现自定义搜索portlet的搜索功能。问题是我只得到一个结果,即默认用户liferay供应(测试),尽管我也有其他用户。下面是我用来实现搜索的代码片段。我正在使用liferay 7.0。

<%
String keywords = ParamUtil.getString(request, "keywords");

SearchContext searchContext = SearchContextFactory
    .getInstance(request);

    searchContext.setKeywords(keywords);
    searchContext.setAttribute("paginationType", "more");
    searchContext.setStart(0);
    searchContext.setEnd(10);

    Indexer indexer = IndexerRegistryUtil.getIndexer(User.class);

    Hits hits = indexer.search(searchContext);

    List<User> entries = new ArrayList<User>();


    for (int i = 0; i < hits.getDocs().length; i++) {
            Document doc = hits.doc(i);
            System.out.println(hits.doc(i).getUID());
            long entryId = GetterUtil
            .getLong(doc.get(Field.ENTRY_CLASS_PK));

            User entry = null;

            try {
                    entry = UserLocalServiceUtil.getUser(entryId);
            } catch (PortalException pe) {
                    //_log.error(pe.getLocalizedMessage());
            } catch (SystemException se) {
                    //_log.error(se.getLocalizedMessage());
            }

            entries.add(entry);
    }

    List<User> users = UserLocalServiceUtil.getUsers(0,1000000);

    Map<String, String> userMap = new HashMap<String, String>();

    for (User userr : users) {
        userMap.put(Long.toString(userr.getUserId()), userr.getFullName());
}%>

很明显,我正在尝试搜索用户。正如我之前所说,我只能搜索测试用户(由liferay提供)而不是所有用户。 任何帮助都会很棒!

0 个答案:

没有答案