+ /** The logger. */
+ private static final Logger logger = Logging.getLogger(SearchPage.class);
+
+ /** Short-term cache. */
+ private final Cache<List<Phrase>, Set<Hit<Post>>> hitCache = new MemoryCache<List<Phrase>, Set<Hit<Post>>>(new ValueRetriever<List<Phrase>, Set<Hit<Post>>>() {
+
+ @Override
+ @SuppressWarnings("synthetic-access")
+ public CacheItem<Set<Hit<Post>>> retrieve(List<Phrase> phrases) throws CacheException {
+ Set<Post> posts = new HashSet<Post>();
+ for (Sone sone : webInterface.getCore().getSones()) {
+ posts.addAll(sone.getPosts());
+ }
+ return new DefaultCacheItem<Set<Hit<Post>>>(getHits(Filters.filteredSet(posts, Post.FUTURE_POSTS_FILTER), phrases, new PostStringGenerator()));
+ }
+
+ }, new TimedMap<List<Phrase>, CacheItem<Set<Hit<Post>>>>(300000));
+