【问题标题】:Solr Ping query caused exception: undefined field textSolr Ping 查询导致异常:未定义字段文本
【发布时间】:2012-09-03 06:08:18
【问题描述】:

我试图在我的服务器上做一些工作,但遇到了问题。当我尝试通过管理面板 ping 服务器时,我收到此错误,我认为这可能是导致问题的原因:

服务器遇到内部错误(Ping 查询导致异常: 未定义的字段文本 org.apache.solr.common.SolrException:Ping 查询 导致异常:未定义的字段文本位于 org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:76) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) 在 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在

谁能给我一些关于可能出现问题的指导?我正在使用 Solr 3.6。我认为这可能与 schema.xml 中定义的“文本”有关?

这是我目前的架构:https://gist.github.com/3689621

任何帮助将不胜感激。

詹姆斯

【问题讨论】:

    标签: search solr


    【解决方案1】:

    在您的 schema.xml 中添加这一行

    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
    

    【讨论】:

      【解决方案2】:

      根据错误,我猜测 /admin/ping requestHandler 中定义的查询正在搜索名为 text 的字段,而您没有在架构中定义该字段。

      这是一个典型的 ping requestHandler 部分

      <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
        <lst name="invariants">
          <str name="q">solrpingquery</str>
        </lst>
        <lst name="defaults">
          <str name="qt">standard</str>
          <str name="echoParams">all</str>
          <str name="df">text</str>
        </lst>
      </requestHandler>
      

      注意&lt;str name="df"&gt;text&lt;str&gt; 设置的方式。这是 ping 将执行搜索的默认字段。您应该将其更改为在您的架构中定义的字段,可能是titledescription,具体取决于您的架构。

      【讨论】:

      • 将“文本”字段添加到架构中会更好吗?
      • 不,ping 应该做一些与您的实例相关的事情来断言它是可操作的。因此,我会将其更改为您知道将在您的架构中的字段。
      • 我尝试在我的模式中使用“日期”类型的“时间”变量。当我测试 ping 端点时,我仍然收到异常“无效的日期字符串:'solrpingquery'”。我很困惑为什么该字符串被解释为日期字符串。我应该将“solrpingquery”更改为索引中的实际时间吗?我将其改回默认的“文本”并将其重新添加到我的架构中,即使我不使用它。这是我现在可以让它工作的唯一方法。
      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 2016-04-08
      相关资源
      最近更新 更多