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が提供するデフォルトのスキーマが機能します。必要なオプションがありませんか?