SORLJ неопределенное поле null - PullRequest
1 голос
/ 04 февраля 2010

Я пытаюсь сделать простые чтения по индексам Lucene с помощью SolrJ. Мне удалось получить доступ к образцу индекса, доступному в загрузке SolrJ, но я получаю исключение при попытке чтения.

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

Мой индекс содержит только один документ с одним полем, которое называется «nombre»

Я указал это в файле schema.xml, а маршрут - в файле slconfig.xml

.

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() );

Есть идеи? Можете ли вы дать мне решение? Это распространенная ошибка? Заранее большое спасибо.


Если я попробую это с консолью администратора Jetty, я получу: (url: "http://localhost:8983/solr/select/?q=*")

ОШИБКА HTTP: 400

неопределенное поле null

RequestURI = / Solr / выбрать /


Это shema.xml:

(Помните, у моего индекса только один документ с одним полем, которое называется «nombre»)

<?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>


Файл solrconfig.xml:

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


Исключение, которое я получаю:

05-фев-2010 10:07:11 org.apache.solr.common.SolrException log GRAVE: org.apache.solr.common.SolrException: неопределенное поле 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) в 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) at paqueteBase.PruebaDeSolr.main (PruebaDeSolr.java:24)

Ответы [ 2 ]

1 голос
/ 16 января 2013

В вашем параметре q есть неправильная строка запроса, должна быть *: * и не только *. Вы получаете это исключение, потому что SOLR пытается разрешить имя целевого поля, сначала пытается с объявленным полем, а затем ищет определение динамического поля.

1 голос
/ 05 февраля 2010

Хорошо, кажется, мне нужно было указать поле "nombre" как uniqueKey и defaultSearchField в schema.xml. Это начинает работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...