protected void searchByTerm(SearchResult searchResult, String searchTerm, QueryKey queryKey, int maxSearchResults) { int currentCount = 0; int firstResult = queryKey == null ? 0 : queryKey.getFirstResult(); boolean emptyIndex = false; while (currentCount < maxSearchResults && !emptyIndex) { List<EntityInfo> indexResult = luceneSearcher.searchAllField(searchTerm, firstResult, maxSearchResults); if (!indexResult.isEmpty()) { databaseDataLoader.mergeSearchData(searchResult, indexResult, false, (entityId, entityInfo) -> { searchResult.addHit(entityId, entityInfo.getEntityName(), entityInfo.getText(), createNormalizer()); searchResult.getQueryKey().addId(entityId, entityInfo.getEntityName(), entityInfo.getText()); }); currentCount = Math.max(searchResult.getCount(), searchResult.getIdsCount()); firstResult += maxSearchResults; searchResult.getQueryKey().setFirstResult(firstResult); } else { emptyIndex = true; } } }
boolean skip = true; for (EntityKey entityKey : searchResult.getQueryKey().getIds()) { if (searchResult.getCount() >= maxSearchResults) { break; while (searchResult.getCount() < maxSearchResults && !emptyIndex) { List<EntityInfo> indexResult = luceneSearcher.searchLinksField(entityKey.toString(), firstResult, maxSearchResults);
@Override public SearchResult search(String searchTerm, QueryKey queryKey) { SearchResult searchResult = new SearchResult(searchTerm); int maxSearchResults = coreConfig.getMaxSearchResults(); boolean searchByTerm = false; if (queryKey == null || queryKey.isSearchByTermAgain()) { searchByTerm = true; searchByTerm(searchResult, searchTerm, queryKey, maxSearchResults); if (searchResult.getCount() == 0 && searchResult.getIdsCount() == 0) { return searchResult; } } if (!searchByTerm) { searchResult.getQueryKey().setIds(queryKey.getIds()); searchResult.getQueryKey().setFirstResult(queryKey.getFirstResult()); } searchByLinks(queryKey, searchResult, maxSearchResults); if (!searchByTerm && searchResult.getCount() == 0 && searchResult.getQueryKey().isSearchByTermAgain()) { return search(searchTerm, searchResult.getQueryKey()); } else { return searchResult; } }
protected void openNextPage() { Page lastPage = getLastPage(); if (lastPage != null) { SearchResult lastSearchResult = lastPage.getSearchResult(); SearchResult searchResult = ftsService.search(lastSearchResult.getSearchTerm(), lastSearchResult.getQueryKey()); if (searchResult.getCount() == 0) { currentPage.setLastPage(true); paintNavigationControls(pages); showNotification(getMessage("notFound"), NotificationType.HUMANIZED); } else { currentPage = new Page(lastPage.getPageNumber() + 1); currentPage.setSearchResult(searchResult); pages.add(currentPage); paintResult(currentPage); paintNavigationControls(pages); } } }
if (lastPage != null && lastPage.getSearchResult() != null) { SearchResult lastSearchResult = lastPage.getSearchResult(); showNextPage = lastSearchResult.getCount() != 0 && !lastPage.isLastPage();