Вызов Solr Scheme API с использованием Solrj

#java #solr #solrj

#java #solr #solrj

Вопрос:

Основано на документации https://cwiki.apache.org/confluence/display/solr/Schema API

Я хочу вызвать Solr Scheme API с использованием Solrj. Ниже приведена команда curl, которую я хочу вызвать из SolrJ

 curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-field":{
     "name":"sell-by",
     "type":"tdate",
     "stored":true }
}' http://localhost:8983/solr/gettingstarted/schema
  

Есть ли способ вызвать с помощью SolrJ?

Комментарии:

1. какая версия solrj у вас есть?

Ответ №1:

Это должно сделать это:

     String urlString = "http://localhost:8983/solr/gettingstarted";
    SolrClient solr = new HttpSolrClient.Builder(urlString).build();


    Map<String, Object> fieldAttributes = new LinkedHashMap<>();
    fieldAttributes.put("name", "sell-by");
    fieldAttributes.put("type", "tdate");
    fieldAttributes.put("stored", true);

    SchemaRequest.AddField addFieldUpdateSchemaRequest =
            new SchemaRequest.AddField(fieldAttributes);
    SchemaResponse.UpdateResponse addFieldResponse = addFieldUpdateSchemaRequest.process(solr);
  

Некоторые другие примеры кода по работе с Solr Schema API можно найти в SchemaTest.java файл.

Ответ №2:

Другой способ сделать это — через SchemaAPI в SolrJ (начиная с Solr 5.3):

 CloudSolrClient client = ...;
SchemaRequest request = new SchemaRequest();
SchemaResponse response = request.process(client, "collectionName");
SchemaRepresentation schema = response.getSchemaRepresentation();