Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 
 package com.aliyun.opensearch;
 
 
 import java.util.Map;
 
Opensearch索引接口。 主要功能、创建索引、查看索引内容、删除索引和修改索引名称。

Author(s):
liaoran.xg
 
 public class CloudsearchIndex {

    
CloudsearchClient实例。
 
     private CloudsearchClient client;


    
索引名称。
 
     private String indexName;

    
请求的API的URI。
 
     private String path;

    
调用client时发送的请求串信息
 
     private StringBuffer debugInfo = new StringBuffer();

    
构造函数

Parameters:
indexName 索引的名称
client 提交请求的client
 
     public CloudsearchIndex(String indexNameCloudsearchClient client) {
         this. = indexName;
         this. = client;
         this. = "/index/" + this.;
     }

    
根据模板名称创建应用(1)

Parameters:
templateName 模板名称
opts 包含应用的备注信息,具体包括:index_des-应用的描述信息,package_id-该应用选择的套餐
Returns:
返回api返回的正确或错误的结果
Throws:
java.io.IOException
org.apache.http.client.ClientProtocolException
 
     public String createByTemplateName(String templateName,
             Map<StringStringoptsthrows ClientProtocolException,
             IOException {
 
         Map<StringStringparams = new HashMap<StringString>();
 
         params.put("action""create");
         params.put("template"templateName);
 
         if (opts != null && opts.get("desc") != null) {
             params.put("index_des"opts.get("desc"));
         }
 
         if (opts != null && opts.get("package_id") != null) {
             params.put("package_id"opts.get("package_id"));
         }
        return .call(this.params.,
                this.);
    }

    
根据模板名称创建应用(2)

Parameters:
templateName 模板名称
Returns:
返回api返回的正确或错误的结果
Throws:
java.io.IOException
org.apache.http.client.ClientProtocolException
    public String createByTemplateName(String templateNamethrows ClientProtocolExceptionIOException {
        return createByTemplateName(templateNamenew HashMap<StringString>());
    }

    
更新应用的名称和备注信息

Parameters:
toIndexName 应用名称
opts 相关参数
Returns:
返回api返回的正确或错误的结果
Throws:
org.json.JSONException
java.io.IOException
org.apache.http.client.ClientProtocolException
    public String rename(String toIndexNameMap<StringStringopts)
            throws JSONExceptionClientProtocolException,
                    IOException {
        Map<StringStringparams = new HashMap<StringString>();
        params.put("action""update");
        params.put("new_index_name"toIndexName);
        if (opts != null && opts.get("desc") != null) {
            params.put("description"opts.get("desc"));
        }
        String result = .call(this.params,
                .);
        JSONObject jsonResult = new JSONObject(result);
        if (jsonResult != null && jsonResult.getString("status").equals("OK")) {
            this. = toIndexName;
            this. = "/index/" + this.;
        }
        return result;
    }

    
删除当前的应用

Returns:
返回API返回的正确或错误的结果
Throws:
java.io.IOException
org.apache.http.client.ClientProtocolException
    public String delete() throws ClientProtocolExceptionIOException {
        Map<StringStringparams = new HashMap<StringString>();
        params.put("action""delete");
        return .call(this.params.,
                );
    }


    
查看当前应用的状态

Returns:
返回API返回的正确或错误的结果
Throws:
java.io.IOException
org.apache.http.client.ClientProtocolException
    public String status() throws ClientProtocolExceptionIOException {
        Map<StringStringparams = new HashMap<StringString>();
        params.put("action""status");
        return .call(this.params.,
                );
    }

    
列出所有应用

Parameters:
page 开始的页码
pageSize 获取的记录数
Returns:
返回API返回的正确或错误的结果
Throws:
java.io.IOException
org.apache.http.client.ClientProtocolException
    public String listIndexes(Integer pageInteger pageSizethrows ClientProtocolExceptionIOException {
        Map<StringStringparams = new HashMap<StringString>();
        params.put("page"page == null ? "1" : String.valueOf(page));
        params.put("page_size"pageSize == null ? "10" : String.valueOf(pageSize));
        return .call("/index"params.,
                );
    }

    
创建一条导入数据或重建索引的任务 如果operate为import,则需要指定tableName,反之如果operate为build,则不需指定。 例如: 如果想全量导入某个表的数据且导入完毕后重建索引,则可以调用如下: createTask("import", "my_table", true); 如果只想全量导入某个表的数据但不建索引。 createTask("import", "my_table", false); 如果只想重建索引: createTask("build"); createTask("build", "", false);

Parameters:
operate 操作符,包含"build"、"import",build为重建索引,import为数据导入。
tableName 指定的表的名称,此表必须已经配置了数据源,如果为build则此字段无效。
needBuild 指定是否重建索引。
Returns:
返回api的结果。
Throws:
org.apache.http.client.ClientProtocolException
java.io.IOException
Donotgenetatedoc:
    public String createTask(String operateString tableNameboolean needBuildthrows ClientProtocolException,
                    IOException {
        Map<StringStringparams = new HashMap<StringString>();
        params.put("action""createTask");
        params.put("operate"operate);
        if (tableName != null) {
            params.put("table_name"tableName);
        } else {
            params.put("table_name""");
        }
        params.put("need_build"needBuild == true ? "1" : "0");
        return .call(params.,
                );
    }

    
创建一条重建索引的任务

Returns:
返回api返回的结果。
Throws:
org.apache.http.client.ClientProtocolException
java.io.IOException
Donotgenetatedoc:
        return createTask("build"""false);
    }

    
创建一条数据导入的任务

Parameters:
tableName 指定的表的名称,此表必须配置了数据源。
needBuild 指定是否重建索引。
Returns:
返回api返回的结果。
Throws:
org.apache.http.client.ClientProtocolException
java.io.IOException
Donotgenetatedoc:
    public String createImportTask(String tableNameboolean needBuildthrows ClientProtocolExceptionIOException {
        return createTask("import"tableNameneedBuild);
    }

    
获取当前应用的名称

Returns:
应用名称
    public String getIndexName() {
        return this.;
    }

    
获取错误信息

Parameters:
page 开始页数
pageSize 每页的记录数
Returns:
API返回的错误信息
Throws:
java.io.IOException
org.apache.http.client.ClientProtocolException
    public String getErrorMessage(int pageint pageSizethrows ClientProtocolExceptionIOException {
        Map<StringStringparams = new HashMap<StringString>();
        params.put("page", String.valueOf(page));
        params.put("page_size", String.valueOf(pageSize));
        return .call("/index/error/" + params,
                .);
    }

    
获取上次请求的信息

Returns:
String
    public String getDebugInfo() {
        return this..toString();
    }
New to GrepCode? Check out our FAQ X