【问题标题】:Solr: where to find the Luke request handlerSolr:在哪里可以找到 Luke 请求处理程序
【发布时间】:2015-03-05 22:53:47
【问题描述】:

我试图在我的 Solr 索引中获取所有静态和动态字段的列表。 Another SO answer 建议为此使用 Luke 请求处理程序。

它建议在这个 url 找到处理程序:

http://solr:8983/solr/admin/luke?numTerms=0

但是,当我在服务器上尝试此 url 时,我收到 404 错误。

我的核心管理页面在这里http://solr:8983/solr/#/mycore,所以我也尝试了http://solr:8983/solr/#/mycore/admin/luke。这也给了我另一个 404。

有谁知道我做错了什么?我应该使用哪个网址?

【问题讨论】:

  • 您是否按照说明在 solrconfig.xml 中启用了 luke 请求处理程序?
  • 是的。我在 solrconfig.xml 的最后一行添加了以下内容:<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />

标签: solr solr4


【解决方案1】:

首先,您必须启用 Luke 请求处理程序。请注意,如果您从示例 solrconfig.xml 开始,您可能不需要显式启用它,因为

<requestHandler name="/admin/" class="solr.admin.AdminHandlers" />

为你做。

然后,如果您需要以编程方式访问数据,您必须向http://solr:8983/solr/mycore/admin/luke 发出 HTTP GET 请求(没有哈希标记!)。响应是 XML 格式,但指定 wt 参数可以获得不同的格式(例如http://solr:8983/solr/mycore/admin/luke?wt=json

如果您只想查看 SOLR Web 界面中的字段,请从下拉菜单中选择您的核心,然后单击“模式浏览器”

【讨论】:

    【解决方案2】:

    在 Solr 6 中,已删除 solr.admin.AdminHandlers。如果您的 solrconfig.xml 有 &lt;requestHandler name="/admin/" class="solr.admin.AdminHandlers" /&gt; 行,它将无法加载。您将在日志中看到错误,告诉您无法加载类 org.apache.solr.handler.admin.AdminHandlers

    您必须在 solrconfig.xml 中包含该行,

    <requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
    

    但 URL 是特定于核心的,即http://your_server.com:8983/solr/your_core_name/admin/luke

    并且可以指定参数fl,numTerms,id,docId如下:

    • /admin/luke
    • /admin/luke?fl=cat
    • /admin/luke?fl=id&numTerms=50
    • /admin/luke?id=SOLR1000
    • /admin/luke?docId=2

    【讨论】:

    • 这个solrconfig.xml文件修改后如何重新加载?
    【解决方案3】:

    您可以使用this Luke tool 来探索Lucene 索引。

    您还可以使用 solr 管理页面: http://localhost:8983/solr/#/core/schema-browser

    【讨论】:

      猜你喜欢
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      相关资源
      最近更新 更多