From: elgekko Date: Tue, 10 May 2022 08:41:12 +0000 (+0200) Subject: keresesi lista sebesseg atmeneti javitasa X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=66627bf9cf22e8ee35e97821d9299b1ca14f656f;p=mediacube.git keresesi lista sebesseg atmeneti javitasa --- diff --git a/server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java b/server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java index e9149678..b4c0b443 100644 --- a/server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java +++ b/server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java @@ -510,13 +510,19 @@ public class ItemManager extends MemoryCache implements IItemManager { if (!consumer.process(rs)) { // ha nem megyunk vegig pool exception a tranzakcio miatt - connection.rollback(); + try { + connection.rollback(); + } catch (Exception e1) { + } break; } } - connection.commit(); + try { + connection.commit(); + } catch (Exception e1) { + } } catch (Exception e) { logger.catching(e); try { diff --git a/server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java b/server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java index fa181e7d..4662bbc0 100644 --- a/server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java +++ b/server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java @@ -28,8 +28,7 @@ public class MediaFinder implements IMediaFinder { this.manager = manager; } - private PreparedStatement createStatement(Connection connection, String criteria, SearchOptions options) - throws Exception { + private PreparedStatement createStatement(Connection connection, String criteria, SearchOptions options) throws Exception { String criteriasPattern = getCriteriasRegexPattern(criteria); StringBuilder sql = new StringBuilder(); @@ -48,8 +47,7 @@ public class MediaFinder implements IMediaFinder { sql.append("m.modified,"); sql.append("m.length,"); sql.append("m.itemtypeid mediaitemtypeid,"); - sql.append(String.format("HIGHLIGHT(md.description, '', '', '%s') description,", - criteriasPattern)); + sql.append(String.format("HIGHLIGHT(md.description, '', '', '%s') description,", criteriasPattern)); sql.append("it.name mediaitemtypename,"); sql.append("m.houseid mediahouseid,"); sql.append("mf.houseid mediafilehouseid,"); @@ -117,8 +115,7 @@ public class MediaFinder implements IMediaFinder { String query = sql.toString(); logger.info(query); - PreparedStatement st = connection.prepareStatement(query, ResultSet.TYPE_FORWARD_ONLY, - ResultSet.CONCUR_UPDATABLE); + PreparedStatement st = connection.prepareStatement(query, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); // PreparedStatement st = connection.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, // ResultSet.CONCUR_READ_ONLY); @@ -288,118 +285,16 @@ public class MediaFinder implements IMediaFinder { manager.traceIn(); SearchResult result = new SearchResult<>(); - long numberOfRecords = getNumberOfRecords(options); - logger.info("Number of records {}", numberOfRecords); + if (options.getFromResult() == 0) { + long numberOfRecords = getNumberOfRecords(options); + logger.info("Number of records {}", numberOfRecords); + + result.setItemCount(numberOfRecords); + } - result.setItemCount(numberOfRecords); getSearchResults(result, options); manager.traceOut(); return result; } - public SearchResult search_v1(SearchOptions options) { - SearchResult result = new SearchResult<>(); - - ResultSet rs = null; - PreparedStatement st = null; - DefaultContext context = manager.getDbContext(); - Connection connection = context.getConnection(); - try { - int maxRecords = options.getToResult() - options.getFromResult(); - - st = createStatement(connection, options.getText(), options); - - logger.info("Executing query, fetch size is {}, autocommit {}", st.getFetchSize(), - connection.getAutoCommit()); - rs = st.executeQuery(); - logger.info("Checking size"); - rs.last(); - result.setItemCount(rs.getRow()); - logger.info("Result size is {}", result.getItemCount()); - - // set begining position - if (options.getFromResult() > -1) { - if (options.getFromResult() <= result.getItemCount()) { - if (options.getFromResult() > 1) { - rs.absolute(options.getFromResult() - 1); - } else { - rs.beforeFirst(); - } - } else { - if (result.getItemCount() > 0) { - throw new Exception("Invalid searchResult 'from' position: " + options.getFromResult() - + " total records: " + result.getItemCount()); - } - } - } else { - rs.beforeFirst(); - } - - List resultList = null; - logger.info("Processing query result, maxRecords {}", maxRecords); - while (rs.next() && maxRecords > 0) { - ItemType it = new ItemType(); - it.setId(rs.getLong("mediaitemtypeid")); - it.setName(rs.getString("mediaitemtypename")); - - Item item = new Item(); - item.setId(rs.getLong("itemid")); - item.setTitle(rs.getString("itemtitle")); - - Media media = new Media(); - - media.setItemId(item.getId()); - media.setItemType(it); - media.setId(rs.getLong("mediaid")); - media.setTitle(rs.getString("mediatitle")); - media.setHouseId(rs.getString("mediahouseid")); - media.setCreation(rs.getTimestamp("creation")); - media.setCreated(rs.getTimestamp("created")); - media.setModified(rs.getTimestamp("modified")); - media.setArchived(rs.getTimestamp("archived")); - media.setLength(rs.getLong("length")); - media.setMediaFilesCount(rs.getInt("mediafilecount")); - media.setMediaFilesName(rs.getString("mediafilehouseid")); - - ArchivedMedia am = new ArchivedMedia(); - am.setMedia(media); - am.setItem(item); - - if (resultList == null) - resultList = new ArrayList<>(); - resultList.add(am); - - am.setRelevant(rs.getString("description")); - // setRelevant(criterias, am, rs.getString("description")); - maxRecords--; - } - logger.info("Query result processed"); - result.setItems(resultList); - connection.commit(); - } catch (Exception e) { - try { - connection.rollback(); - } catch (Exception e1) { - e1.printStackTrace(); - } - manager.throwError(e); - } finally { - try { - - if (rs != null) - rs.close(); - } catch (Exception e1) { - } - try { - if (st != null) - st.close(); - } catch (Exception e1) { - } - - manager.putDbContext(context); - } - manager.traceOut(); - - return result; - } } diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java index dcb1e72d..dded66f5 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java @@ -26,7 +26,7 @@ import user.jobengine.search.SearchResult; public class CachedListModel extends ListModelList { private static final long serialVersionUID = 1L; private static final Logger logger = LogManager.getLogger(); - private int cacheSize = 50; + private int cacheSize = 1000; private HashMap cache = new HashMap(); private boolean cachedMode = true;