2012-06-10 3 views
1

Je viens d'installer Solr et j'ai le schéma par défaut qui fonctionne avec moi. Mais quand je change le schéma du plus simple par défaut, je ne peux pas me connecter via solr via php mais peut encore passer par tomcat. Mon code php ressemble à ceci:Connectez-vous à Solr avec 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'; 
     } 

Et mon schéma dans 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> 

Aussi je reçois cette erreur lorsque j'utilise 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) 

Juste pour clarifier , il ne se connecte pas de PHP quand je change le schéma en celui ci-dessus, le schéma par défaut fourni par solr fonctionne. Est-ce que je manque une option requise?

Répondre

1

Il semble que lorsque vous essayez de vous connecter avec solr, il recherche un champ appelé text qui manque dans votre schéma.

Ajoutez la ligne suivante à votre schéma et essayez à nouveau:

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

Pas sûr que cela ait beaucoup de sens, le champ par défaut est: name

2

Semble le champ de texte est référencé à plusieurs reprises dans solrconfig.xml (j'ai trouvé ce poste par la même erreur). Vous pouvez mettre à jour ces références au nom de champ de votre choix (tout ce qui a du sens dans votre schéma).

Cela a résolu ce problème pour moi.

+1

Merci d'avoir ajouté votre solution ici. Cela semble 'mieux' que d'avoir à ajouter un champ 'text' non utilisé arbitrairement au schéma pour satisfaire le message d'erreur, mais attention aux mises à jour de Solr qui peuvent remplacer vos personnalisations' solrconfig.xml'. – Sepster

+0

C'est vrai, mon fichier solrconfig.xml est hautement personnalisé, et le mettre en ligne avec ce qu'utilise Apache Solr est pénible. – Dan