最近、solrインスタンスを1,4から3.6にアップグレードしました。ただし、インデックスを更新すると、ログに「未定義のフィールドテキスト」の重大なメッセージが表示されるようになりました。
私のスキーマにはテキストフィールドがあります(バージョン1.4で有効でした)が、以前にフィールドタイプとして宣言する必要はありませんでした。これは3.6で変更されましたか?
私のスキーマはこちら>> http://Pastebin.com/KrCVab
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)
フィールドタイプ「テキスト」についてではありません。 「text」というフィールドについてです。
Configのデフォルトフィールドを「search_text」に変更しました。 「search_text」へのすべての参照の名前を「text」に変更してみてください。これで問題が解決した場合は、「テキスト」フィールドを参照している構成のどこかに、おそらく Solr Query-HTTP error 404 undefined field text
それが役に立てば幸い。
私の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"/>
これはあなたの問題を解決します。
ありがとう
それは今日私にも起こりました。エラーが発生したときにクエリを実行する場合は、クエリ内のデータを次のように二重引用符で囲む必要があります。
filepath: "照会するデータ"
クエリの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>
solr管理インターフェースでは、現在機能しているスキームを確認でき、正しいパスにいるかどうかを確認できます。 pictrues ilistruatesの下
4.10.2以降のバージョン(想定)
4.10.2より前のバージョン。左側Schemeメニューを使用する必要があります。