#java #elasticsearch #search #liferay #portlet
Вопрос:
я использую liferay 7.3.5 и пытаюсь создать эластичный поиск. Я попытался проиндексировать одну из сущностей, которые у меня есть в базе данных.
Я пошел по Пути обучения на Портале разработчиков, посвященному «Включению поиска и индексации». В этом примере поиск выполняется непосредственно в JSP, который отображает результаты поиска следующим образом…
SearchContext searchContext = SearchContextFactory .getInstance(request);
searchContext.setKeywords(keywords);
searchContext.setAttribute("paginationType", "more");
searchContext.setStart(0);
searchContext.setEnd(10);
Indexer indexer = IndexerRegistryUtil.getIndexer(Entry.class);
Hits hits = indexer.search(searchContext);
Что я сделал, так это перевел этот код в режим Java, чтобы не большая часть Java была включена в JSP
public void searchEntries(final ActionRequest request, final ActionResponse response) throws PortalException {
HttpServletRequest _request = PortalUtil.getHttpServletRequest(request);
SearchContext searchContext = SearchContextFactory.getInstance(_request);
String keywords = ParamUtil.getString(request, "keywords");
searchContext.setKeywords(keywords);
searchContext.setAttribute("paginationType", "more");
searchContext.setStart(0);
searchContext.setEnd(10);
Indexer<MyClassName> indexer = IndexerRegistryUtil.getIndexer(MyClassName.class);
Hits hits = indexer.search(searchContext);
.....
}
Но при поиске я всегда получаю пустые результаты поиска по элементам «Хиты», как показано на рисунке:
{docs={}, длина=0, запрос=null]
Обратите внимание, что процесс индексирования работает хорошо без ошибок, и индекс содержит необходимые документы, как я вижу, используя kibana
В чем же ошибка?
thnx
Комментарии:
1. Почему » HttpServletRequest _request = PortalUtil.getHttpServletRequest(запрос);», а не запрос портлета ?
2. @DanieleBaggio Когда я использую .getInstance () в ** SearchContext searchContext = SearchContextFactory.getInstance(_request) ** Я должен определить ( HttpServletRequest) Я думаю, что это не настоящая причина проблемы
3. Действительно, нет. код кажется тем же самым. Откат к версии jsp и проверка изменений
4. @DanieleBaggio Это не помогло. Мне нужен метод, с помощью которого я могу получить документы, сохраненные в индексе, и вернуть их в элементы обращений