web-dev-qa-db-ja.com

Solr「未定義フィールドテキスト」

最近、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)
14
Lee Davis

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

Configのデフォルトフィールドを「search_text」に変更しました。 「search_text」へのすべての参照の名前を「text」に変更してみてください。これで問題が解決した場合は、「テキスト」フィールドを参照している構成のどこかに、おそらく Solr Query-HTTP error 404 undefined field text

それが役に立てば幸い。

22
krishnakumarp

私の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"/>

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

ありがとう

9
Ghulam Rasool

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

filepath: "照会するデータ"

3
Bob

クエリの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>
2
mirelon

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

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

solr.4.10.2

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

solr.4.10.2

2
Halis Yılboğa