15

最近、solrインスタンスを1.4から3.6にアップグレードしました。ただし、インデックスを更新するたびに、ログに「未定義のフィールドテキスト」という重大なメッセージが表示されるようになりました。

スキーマ(バージョン1.4の時点で有効)にテキストフィールドがありますが、以前はフィールドタイプとして宣言する必要はありませんでした。これは3.6で変更されましたか?

私のスキーマはここにあります>> http://pastebin.com/KrCVab0U

SEVERE: org.apache.solr.common.SolrException: undefined field text
        at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330)
        at org.apache.solr.schema.IndexSchema$SolrQueryAnalyzer.getAnalyzer(IndexSchema.java:408)
        at org.apache.solr.schema.IndexSchema$SolrIndexAnalyzer.reusableTokenStream(IndexSchema.java:383)
        at org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:574)
        at org.apache.solr.search.SolrQueryParser.getFieldQuery(SolrQueryParser.java:206)
        at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1429)
        at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1317)
        at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1245)
        at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1234)
        at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:206)
        at org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:79)
        at org.apache.solr.search.QParser.getQuery(QParser.java:143)
        at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:105)
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:165)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
        at org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:67)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
        at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:679)
4

5 に答える 5

23

フィールドタイプ「テキスト」についてではありません。「テキスト」という名前のフィールドについてです。

configのデフォルトフィールドを「search_text」に変更しました。「search_text」へのすべての参照の名前を「text」に変更してみてください。これで問題が解決した場合は、構成のどこかで「テキスト」フィールドを参照していることがわかります。おそらく、Solrクエリで提案されているようにsolrconfig.xmlにあります-HTTPエラー404未定義のフィールドテキスト

それが役に立てば幸い。

于 2012-07-03T11:37:15.627 に答える
9

これはsolrconfig.xmlファイルにあります。

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

これをschema.xmlに追加していない場合は、追加してください

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

これはあなたの問題を解決します。

ありがとう

于 2013-03-06T06:34:57.740 に答える
3

今日も私に起こった。エラーが発生したときにクエリを実行する場合は、次のようにクエリのデータを二重引用符で囲む必要があります。

filepath:"照会するデータ"

于 2014-03-21T00:13:55.997 に答える
2

fqクエリの一部をサニタイズしたときに同じエラーが発生しました。消毒した後、solrは受け取りました

...&fq=type\:Product&...

という名前のフィールドがtypeありますが、エラーは「未定義のフィールドテキスト」と表示されていました。

サニタイズを削除したとき、クエリは問題ありませんでした。

...&fq=type:Product&...

紛らわしいエラーメッセージの原因はsolrconfig.xmlにありました:

<requestHandler name="/select" class="solr.SearchHandler">
  <lst name="defaults">
    <str name="echoParams">explicit</str>
    <int name="rows">10</int>
    <str name="df">text</str>
  </lst>
</requestHandler>
于 2014-08-19T15:14:45.143 に答える
2

solr管理インターフェースでは、現在機能しているスキームを確認でき、正しいパスにいるかどうかを確認できます。以下のpictruesilistruates

4.10.2以降のバージョン(想定)

solr.4.10.2

4.10.2よりも低いバージョン。左側のSchemeメニューを使用する必要があります。

solr.4.10.2

于 2014-12-13T14:23:36.183 に答える