【问题标题】:Calling Solr Scheme API using Solrj使用 Solrj 调用 Solr Scheme API
【发布时间】:2016-10-24 09:02:40
【问题描述】:

基于文档 https://cwiki.apache.org/confluence/display/solr/Schema+API

我想使用 Solrj 调用 Solr Scheme API。 以下是我想从 SolrJ 调用的 curl 命令

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

【问题讨论】:

  • 你有哪个版本的 solrj?

标签: java solr 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);

可以在SchemaTest.java 文件中找到有关使用 Solr Schema API 的其他一些代码示例。

【讨论】:

    【解决方案2】:

    另一种方法是通过 SolrJ 中的 SchemaAPI(自 Solr 5.3 起):

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

    【讨论】:

      猜你喜欢
      • 2018-08-02
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      • 2015-04-13
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多