1

Solr をインストールしたところ、デフォルトのスキーマが動作するようになりました。しかし、スキーマをデフォルトから単純なものに変更すると、solr 経由で php 経由で接続することはできませんが、tomcat 経由で接続することはできます。私のphpコードは次のようになります:

require_once 'Apache/Solr/Service.php';

        $solr = new Apache_Solr_Service(
        'xxx.xx.xxx.xxx',
        8080,
        '/dev.example.com/');

        if(!$solr->ping()){         
            echo 'Solr Down';
        }

そしてsolrの私のスキーマ

<?xml version="1.0" ?>
<schema name="testschema1" version="1.5">
  <types>
   <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
  </types>

 <fields>
  <!-- general -->
  <field name="id"  type="string"   indexed="true"  stored="true"  multiValued="false" required="true"/>
  <field name="type"    type="string"   indexed="true"  stored="true"  multiValued="false" />
  <field name="name"    type="string"   indexed="true"  stored="true"  multiValued="false" />
  <field name="core0"   type="string"   indexed="true"  stored="true"  multiValued="false" />
 </fields>

 <!-- field to use to determine and enforce document uniqueness. -->
 <uniqueKey>id</uniqueKey>

 <!-- field for the QueryParser to use when an explicit fieldname is absent -->
 <defaultSearchField>name</defaultSearchField>

 <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
 <solrQueryParser defaultOperator="OR"/>
</schema>

また、 java -jar start.jr を使用すると、このエラーが発生します

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)

明確にするために、スキーマを上記のものに変更した場合にのみPHPから接続しません。solrが提供するデフォルトのスキーマが機能します。必要なオプションがありませんか?

4

2 に答える 2

2

solrconfig.xml でテキスト フィールドが数回参照されているようです (同じエラーでこの投稿を見つけました)。これらの参照を、選択したフィールド名 (スキーマで意味のあるもの) に更新できます。

そうすることで、この問題が解決しました。

于 2012-08-09T15:50:29.413 に答える
1

textsolrに接続しようとすると、スキーマから欠落しているというフィールドを探しているように見えます。

スキーマに次の行を追加して、再試行してください。

<field name="text" type="text" indexed="true" stored="true" multiValued="true" />
于 2012-06-10T18:54:21.233 に答える