@Override
  public void execute(FunctionContext context) {
    try {
      RegionFunctionContext ctx = (RegionFunctionContext) context;
      Region region = PartitionRegionHelper.getLocalDataForContext(ctx);
      Set<?> keys = ctx.getFilter();
      SecurityService securityService = ((InternalCache) ctx.getCache()).getSecurityService();
      List<PageEntry> results = new PageResults(keys.size());
      Object principal = context.getPrincipal();

      for (Object key : keys) {
        PageEntry entry = getEntry(region, key, securityService, principal);
        if (entry != null) {
          results.add(entry);
        }
      }
      ctx.getResultSender().lastResult(results);
    } catch (CacheClosedException | PrimaryBucketException e) {
      logger.debug("Exception during lucene query function", e);
      throw new InternalFunctionInvocationTargetException(e);
    }
  }
{@link LuceneGetPageFunction} Returns the values of entries back to the user This behaves
basically like a getAll, but it does not invoke a cache loader
geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/results/LuceneGetPageFunction.java