2012-06-10 3 views
1

방금 ​​Solr을 설치했고 저와 함께 작업하는 기본 스키마를 얻었습니다. 하지만 기본 스키마를 단순한 스키마로 변경하면 solr을 통해 PHP를 통해 연결할 수 없지만 여전히 Tomcat을 통해 액세스 할 수 있습니다. 내 PHP 코드는 다음과 같습니다PHP로 Solr에 연결하기

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> 

내가 start.jr -jar 자바를 사용할 때이 오류가

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이 제공하는 기본 스키마가 작동합니다. 몇 가지 필수 옵션이 누락 되었습니까?

답변

1

당신이 스키마에서 찾을 수없는 text이라는 필드를 찾고있는 것처럼 보이게하려고 할 때처럼 보입니다.

이 스키마에 다음 줄을 추가하고 다시 시도 :

<field name="text" type="text" indexed="true" stored="true" multiValued="true" /> 
+0

기본 필드는 다음과 같이 설정됩니다. name

2

는 텍스트 필드에 solrconfig.xml에서 여러 번 참조되는 것 같다 (I 같은 오류를 통해 해당 게시물을 찾을 수 없음). 당신이 선택한 필드 이름에 대한 참조를 업데이트 할 수 있습니다 (스키마에서 의미가 있든간에).

이 문제가 해결되었습니다.

+1

솔루션을 추가해 주셔서 감사합니다. 사용하지 않은'text' 필드를 스키마에 추가하여 에러 메시지를 만족시키는 것보다 '더 낫다'고 생각하지만,'solrconfig.xml' 사용자 정의를 대체 할 수있는 Solr 업데이트에주의하십시오. – Sepster

+0

사실, 내 solrconfig.xml은 고도로 사용자 정의되어 있으며 Apache Solr이 사용하는 것과 인라인으로 가져 오는 것이 쉽지 않습니다. – Dan

관련 문제