Apache 目录 LDAP - 分页搜索

2024-03-28

我一直在寻找使用 Apache Directory API 执行分页搜索的信息,但我没有找到任何示例或任何有关如何使用正确的 PagedResults 控件构建 SearchRequest 然后执行搜索的信息。

你们有什么建议吗?或者知道哪里可以找到此类信息?

或者,也许你应该推荐我使用其他一些 API,比如 unboundid sdk

预先感谢并致以亲切的问候。


今天,我努力使 kayyagara 的链接示例发挥作用。

它有一些问题:

  • 需要一个特殊的系统变量才能使其正常工作
  • 坏饼干破坏了整个事情
  • 不需要某些设置/代码行

以下是工作示例:

        //Without this you get a class Cast Exception:
        //java.lang.ClassCastException: org.apache.directory.api.ldap.codec.BasicControlDecorator cannot be cast to org.apache.directory.api.ldap.model.message.controls.PagedResults
        System.setProperty(StandaloneLdapApiService.CONTROLS_LIST,
            PagedResultsFactory.class.getName());

        PagedResults pagedSearchControl = new PagedResultsDecorator(
                connection.getCodecService());
        pagedSearchControl.setSize(300);

        // Loop over all the elements
        List<Entry> results = new ArrayList<Entry>();
        boolean hasUnwillingToPerform = false;

        //inspired by http://markmail.org/message/43qjepg6shvfvqud
        while (true) {
            EntryCursor cursor = null;

            try {
                SearchRequest searchRequest = new SearchRequestImpl();
                searchRequest.setBase(new Dn(searchRoot));
                searchRequest.setFilter(searchFilter);
                searchRequest.setScope(SearchScope.SUBTREE);
                searchRequest.addAttributes("*");
                searchRequest.addControl(pagedSearchControl);

                cursor = new EntryCursorImpl(
                        connection.search(searchRequest));

                while (cursor.next()) {
                    Entry result = cursor.get();
                    results.add(result);
                }

                SearchResultDone result = cursor.getSearchResultDone();
                pagedSearchControl = (PagedResults) result
                        .getControl(PagedResults.OID);

                if (result.getLdapResult().getResultCode() == ResultCodeEnum.UNWILLING_TO_PERFORM) {
                    hasUnwillingToPerform = true;
                    break;
                }
            } finally {
                if (cursor != null) {
                    cursor.close();
                }
            }

            // check if this is over
            byte[] cookie = pagedSearchControl.getCookie();

            if (Strings.isEmpty(cookie)) {
                // If so, exit the loop
                break;
            }

            // Prepare the next iteration
            pagedSearchControl.setSize(300);
        }

        if (hasUnwillingToPerform) {
            throw new IllegalStateException("AD can't handle paging");
        }

        // Cleanup the session
        connection.unBind();
        connection.close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache 目录 LDAP - 分页搜索 的相关文章

  • 寻找有关 Jeff 幻灯片中介绍的“Group varint 编码/解码”的更多详细信息

    我注意到 Jeff 的幻灯片 构建大规模信息检索系统的挑战 也可以在这里下载 http research google com people jeff WSDM09 keynote pdf http research google com
  • 使用字典中的特定键构建列表(python)?

    我正在用 Python 实现 Dijkstra 搜索算法 在搜索结束时 我使用前驱图重建最短路径 从目标节点的前驱开始 例如 path path append destination previous predecessor map des
  • Cassandra 中的二级索引和倒排索引有什么区别?

    当我读到这两篇文章时 我认为他们都在解释相同的方法 我用谷歌搜索但什么也没找到 执行上有区别吗 Cassandra本身有二级索引 但倒排索引必须自己实现 顺便问一下 哪个搜索速度更快 主要区别在于 Cassandra 中的二级索引的分布方式
  • 我需要帮助向 php 实时搜索添加条件

    我刚刚学习 php 最终学习了本教程http www w3schools com php php ajax livesearch asp 到目前为止 我的 PHP 搜索文件看起来与示例中的相同 但我更改了if strlen q gt 0 t
  • 保持 LDAP 会话

    在 PHP 中 假设我在第 1 页有一个 LDAP 连接 ldapconn ldap connect ldapserver if ldapconn binding to ldap server ldapbind ldap bind ldap
  • 如何设计一个带有可选参数的 RESTful URL 进行搜索?

    如果我必须在 RESTful Web 服务中创建一个 URL 我的客户将使用该 URL 按字段搜索所有企业 其中字段是可选的 那么该 URL 会是什么样子 可以仅通过名称 姓名和电话号码或姓名 电话号码和联系电子邮件来搜索企业 钱德鲁 将所
  • 使用批量/更新方法将“标签”应用于数百万个文档

    我们的 ElasticSearch 实例中有大约 55 000 000 个文档 我们有一个带有 user ids 的 CSV 文件 最大的 CSV 有 9M 个条目 我们的文档以 user id 作为键 所以这很方便 我发布这个问题是因为我
  • 在对象数组中搜索条目匹配变量并检查它是否与其他字段匹配

    所以该程序正在尝试分配一个教室 到目前为止 程序已询问用户班级代码 学生人数以及是否需要计算机 并已使用字段 cRObj name cRObj students 和 cRObj computers 构建了一个数组 因此教室名称将列在 cRO
  • 谷歌图片搜索是如何实现的?

    我只需拖放谷歌中的任何图像即可获得结果 它是如何实施的 该算法背后的想法是什么 该图像数据是否转换为任何内容以供搜索或 不知道 令人惊讶的是 我们还可以使用Google来回答这个问题 Google 按图像搜索使用的算法是什么 http ww
  • IP 地址的索引范围搜索算法

    给定一个包含 100 亿个以 CIDR 表示法表示的 IPv4 范围或两个 IP 之间的 ACL 列表 x x x x y x x x x y y y y 用于测试给定 IP 地址是否满足一个或多个 ACL 范围条件的有效搜索 索引算法是什
  • 让 Google 搜索回归 Python

    我正在尝试从 Google 搜索中获取前 20 个结果 当我使用urllib2 urlopen 它给了我一个错误并说我被禁止了 我听说这与伪造用户代理字符串有关 但我几乎没有 urllib2 经验 如果有人可以提供帮助 我将非常感激 谢谢
  • 如何从 Solr 查询中获取 tf 和 idf 分数?

    以下 Solr 文档 https cwiki apache org confluence display solr Function Queries https cwiki apache org confluence display sol
  • 如何在linux中查找包含字符串的行[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Linux 中有一个文件 我想显示该文件中包含特定字符串的行 该怎么做 通常的方法是使用grep https linux die n
  • 在 lucene 中搜索 UUID 不起作用

    我有一个 UUID 字段 以以下格式添加到我的文档中 372d325c e01b 432f 98bd bc4c949f15b8 但是 当我尝试通过 UUID 查询文档时 无论我如何尝试转义表达式 它都不会返回它们 例如 uuid 372d3
  • SOLR 中的子字符串匹配

    我似乎无法弄清楚如何使用 SOLR 查找子字符串匹配 我已经根据前缀找出了匹配 这样我就可以让火腿与汉堡包匹配 我如何搜索 汉堡 来匹配汉堡包 我试过burger但这引发了错误 或 不允许作为 WildcardQuery 中的第一个字符 如
  • 如何在elasticsearch中配置synonym_path

    我对 elasticsearch 很陌生 我想使用同义词 我在配置文件中添加了这些行 index analysis analyzer synonym type custom tokenizer whitespace filter synon
  • 冷融合和分页

    首先 我对 ColdFusion 很陌生 但学得很快 因此 我正在尝试构建一个大型数据库 最初每页显示 25 行的所有结果 并有一个下一个 上一个链接来浏览页面 这一切都工作正常 但是当我执行搜索时 当新结果显示大约几页时 分页链接不起作用
  • 更改 SOLR 默认连接

    我正在使用嵌入 SOLR 的应用程序 SOLR 在 Tomcat 的 webapp 区域中像一场战争一样运行 是否有 SOLR 配置允许我切换搜索的默认 SOLR 行为以假定 AND 而不是 OR 作为连接运算符 在您的模式文件中添加 或修
  • 如何使用 Delphi XE2 IDE 搜索来搜索

    我一直使用搜索来在 庞大的 应用程序源中查找内容 因此搜索有效性对我来说非常重要 目前在 Delphi XE2 IDE 中我喜欢使用 在文件中查找 包括子目录 没有其他花哨的东西 只是一个文本关键字 这工作正常 但我真正想做的是扩展我现在正
  • 在 mysql 中搜索带变音符号的阿拉伯语

    所以我有一个巨大的带有变音符号的阿拉伯语书面文本数据库 变音符号是阿拉伯语中附加到其他字符的小字符 例如 带变音符号 不带变音符号 我正在使用 mysql 和 laravel 在文本中搜索没有变音符号的特定单词 如何忽略搜索中的变音符号 看

随机推荐

  • 为什么调用函数时要使用“go”关键字?

    我正在查看 TCP 服务器的示例 他们定义了一个函数并用以下方式调用它 go handleRequest conn 我觉得看到这个很奇怪go关键字 所以我尝试了没有 handleRequest conn 令我惊讶的是 这有效 如果两者的工作
  • Sphinx警告预加载:无法打开

    我安装了sphinx搜索服务 为了创建索引 我使用下一个命令 sudo searchd c etc sphinxsearch sphinx conf 在终端中收到警告消息后 使用配置文件 etc sphinxsearch sphinx co
  • 十月 CMS:无法创建表单小部件

    我是 October CMS 的新手 正在学习创建表单小部件 但我收到以下错误 The partial field actorbox htm is not found opt lampp htdocs octobermovies modul
  • UIDynamicItem 手动更新转换

    我知道外部变化center bounds and transform之后将被忽略UIDynamicItems init 但我需要手动更改transform of UIView在UIDynamicAnimator system 每次我改变tr
  • 通过 for-compression 线程“Try”

    触发于另一个问题 https stackoverflow com revisions 5cbd16fb 14e0 4870 aae7 b140601b1e3e view source 不过后来被编辑掉了 我想尝试一下链接调用 Scala 2
  • 使用 ETW 记录异常的最佳方法是什么?

    是否有使用 ETW 记录异常的标准方法 据我所知 执行此操作的唯一方法是记录消息以及可能的内部异常消息 因为异常类型没有强类型参数 当启用时 所有 CLR 异常 第一次机会以及可能最终导致应用程序崩溃的异常 都会由 CLR 运行时提供程序记
  • nfq_get_payload 如何构造其返回数据?

    首先 我尝试从 Netfilter 队列有效负载的有效负载中获取源地址和目标端口 使用 nfq get payload 函数检索有效负载 下面的问题提出了同样的问题并得到了正确的答案 如何从 iptables 队列中的数据包中提取源端口号和
  • 将自动增量限制在特定范围内

    我正在尝试创建一个工作应用程序 该应用程序将在内部使用 并允许我们为我们的产品 SKU 分配一些条形码编号 我使用 Visual Studio Basic 2010 Express 来构建这个 因为我使用 VS 2010 Express 的
  • svn结帐深度

    我有一个 SVN 项目 其树如下 project dir1 subdir1 file1 file2 file1 file2 dir2 file1 file2 dir3 subdir1 file1 file2 subdir2 file1 fi
  • 字体大小 <12px 在 Google Chrome 中无效

    css font size 我应该怎么办 我的 Google Chrome 浏览器使用默认设置 我的版本是4 0 249 89 我使用的是Windows XP 您可以将以下代码粘贴到 Google Chrome 中进行测试 p style
  • 为什么 IE11 在 ajax 请求的请求标头中发送“pragma: no-cache”?

    我正在 IE11 上测试我的网页 我正在进行一些 ajax 调用并将响应标头设置为 Cache Control private max age 21600 虽然每次发出请求时 IE11都会设置Pragma no cache请求标头 导致请求
  • 为什么 Jersey/JAX-RS 客户端无法处理泛型?

    我有一个 Jersey JAX RS 客户端 它使用 RESTful API JSON 该 API 应该返回我的 POJO 列表 Hits GET localhost 8080 myapp fizz widget widget id Ove
  • 我可以在没有自己的后端服务器的情况下在 React 中实现 Stripe checkout 吗?

    我在 Netlify 上部署了一个 React 前端 我想实现一个简单的支付系统 用户可以输入他们想要的金额并使用 Stripe 结帐甚至 PayPal 进行支付 我想知道这是否可以在不支付单独后端费用的情况下实现 或者您可以建议其他任何自
  • 如何使用 jquery 追加整个 html 文件

    我有一个像这样的html文件 some content some content 我的问题是如何使用 jquery 加载这个文件作为一个整体 我尝试过 我搜索了很长一段时间的解决方案 但只找到了很多方法来附加html文件的某些部分 例如元
  • Android 通用 AsyncTask 类

    我看过这个答案 由于 AsyncTask 是一个单独的类 如何将 OnPostExecute 的结果获取到主活动 https stackoverflow com questions 12575068 how to get the resul
  • AngularJS ng-repeat 通过复杂和动态的 JSON 数组

    我正在尝试使用 JSON 数组向用户显示内容ng repeat选项 这JSON Array是动态创建的 所以我有点困惑如何向用户显示相同的内容 的语法JSON ARRAY内容如下COMPLEX key可以动态增加或减少 jsonList n
  • ASP.Net core-从中间件获取routetemplate值

    我有一个中间件 每次对我的 API 发出请求时都会调用该中间件 我想记录路由模板以及来自该中间件的请求的持续时间 如何在我的中间件代码中获取路由模板 路由模板类似于 products productId 这是我如何让它发挥作用的 我在过滤器
  • 如何使用 Python 和 Django 创建 SaaS 应用程序

    您能给我一些建议 让您可以使用 Python 和 Django 创建 SaaS 软件即服务 应用程序吗 目前我不明白的一般主题是 您是否为所有客户提供一个可用的应用程序 或者为每个客户提供一个应用程序 如何管理每个客户端的数据库访问 权限或
  • 原生原型与 $.extension()

    在工作中 我们使用 jQuery 在我们开始使用它后不久 我看到几个开发人员正在向文件 jquery extensions js 添加函数 在里面 我发现添加了一大堆方法 这本质上相当于 jQuery 上的静态方法 这里有一些 format
  • Apache 目录 LDAP - 分页搜索

    我一直在寻找使用 Apache Directory API 执行分页搜索的信息 但我没有找到任何示例或任何有关如何使用正确的 PagedResults 控件构建 SearchRequest 然后执行搜索的信息 你们有什么建议吗 或者知道哪里