2010-02-04 5 views
0

J'essaie de faire des lectures simples sur les index de Lucene en utilisant SolrJ. J'ai été en mesure d'accéder à l'index d'échantillon disponible dans le téléchargement de SolrJ, mais je reçois une exception en essayant de faire la lecture.SORLJ champ indéfini null

04-feb-2010 17:05:05 org.apache.solr.common.SolrException log 
       GRAVE: org.apache.solr.common.SolrException: undefined field null 

Mon index n'a qu'un seul document avec un seul champ, appelé « nombre »

J'ai indiqué cela dans le schema.xml et la route dans le slconfig.xml

code Java

System.setProperty("solr.solr.home", "C:\\solr"); 

// CREATING THE SERVER 
CoreContainer.Initializer initializer = new CoreContainer.Initializer(); 
CoreContainer coreContainer = null; 
SolrServer embServer = null; 
coreContainer = initializer.initialize(); 
embServer = new EmbeddedSolrServer(coreContainer, ""); 

// READING 
SolrQuery query = new SolrQuery(); 
String q = "*"; 
query.setQuery(q); 
QueryResponse rsp = null; 

/// HERE I GET THE EXCEPTION /// 
rsp = embServer.query(query); 
/// HERE I GET THE EXCEPTION /// 

// GETTING THE NUMBER OF ITEMS 
SolrDocumentList docs = rsp.getResults(); 
System.out.println(docs.size()); 

Des idées? Pouvez-vous me donner une solution? Est-ce une erreur commune? Merci beaucoup d'avance.


Si j'essayer avec la console d'administration Jetty je reçois: (url: "http://localhost:8983/solr/select/?q= *")

ERREUR HTTP: 400

champ non défini null

RequestURI =/solr/select/


Le shema.xml est celui-ci:

(Rappelez-vous mon index n'a qu'un seul document avec un seul champ, appelé « nom »)

<?xml version="1.0" encoding="UTF-8" ?> 
<schema name="example" version="1.2"> 
    <types> 
    <fieldType name="string" class="solr.StrField"/> 
    </types> 
<fields> 
<field name="nombre" type="string" indexed="true" stored="true"/> 
</fields> 
</schema> 


Le solrconfig.xml est celui-ci:

<?xml version="1.0" encoding="UTF-8" ?> 
<config> 
    <requestHandler name="standard" class="solr.StandardRequestHandler" /> 
    <dataDir>${solr.data.dir:./data/clientes}</dataDir> 
</config> 


L'exception que je reçois est:

05-feb-2010 10:07:11 org.apache.solr.common.SolrException log GRAVE: org.apache.solr.common.SolrException: champ indéfini null à org.apache.solr.schema.IndexSchema.getDynamicFieldType (IndexSchema.java:1136) à org.apache.solr.schema.IndexSchema.getFieldType (IndexSchema.java:1098) à org.apache.solr.search .SolrQueryParser.getWildcardQuery (SolrQueryParser.java:193) à org.apache.lucene.queryParser.QueryParser.Term (QueryParser.java:1434) à org.apache.lucene.queryParser.QueryParser.Clause (QueryParser.java:1337) a t org.apache.lucene.queryParser.QueryParser.Query (QueryParser.java:1265) à org.apache.lucene.queryParser.QueryParser.TopLevelQuery (QueryParser.java:1254) à org.apache.lucene.queryParser.QueryParser .parse (QueryParser.java:200) à org.apache.solr.search.LuceneQParser.parse (LuceneQParserPlugin.java:78) à org.apache.solr.search.QParser.getQuery (QParser.java:131) à org.apache.solr.handler.component.QueryComponent.prepare (QueryComponent.java:89) à org.apache.solr.handler.component.SearchHandler.handleRequestBody (SearchHandler.java: 174) à org.apache.solr.handler.RequestHandlerBase.handleRequest (RequestHandlerBase.java:131) à org.apache.solr.core.SolrCore.execute (SolrCore.java:1316) à org.apache. solr.client.solrj.embedded.EmbeddedSolrServer.request (EmbeddedSolrServer.java:139) à org.apache.solr.client.solrj.request.QueryRequest.process (QueryRequest.java:89) à org.apache.solr. client.solrj.SolrServer.query (SolrServer.java:118) à paqueteBase.PruebaDeSolr.ejecutate (PruebaDeSolr.java:67) à paqueteBase.PruebaDeSolr.main (PruebaDeSolr.java:24)

+0

Salut .. quelle est l'exception que vous obtenez? – CraftyFella

+0

la requête devrait être "*: *" au lieu de "*" mais je ne pense pas que c'est ce qui cause l'exception ... pouvez-vous poster votre schéma.xml? –

Répondre

1

Ok, il semble J'avais besoin de spécifier le champ "nombre" comme uniqueKey et defaultSearchField dans le fichier schema.xml. Ça commence à marcher.

1

Dans votre paramètre q, il y a une chaîne de requête incorrecte, qui doit être *: * et pas seulement *. Vous obtenez cette exception car SOLR tente de résoudre le nom du champ cible, en essayant d'abord avec le champ déclaré, puis en recherchant une définition de champ dynamique.

Questions connexes