我刚刚安装了 Solr,我得到了默认模式。但是当我将模式从默认更改为更简单的模式时,我无法通过 php 通过 solr 进行连接,但仍然可以通过 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 提供的默认架构有效。我错过了一些必需的选项吗?