本文整理汇总了Golang中github.com/mattbaird/elastigo/api.DoCommand函数的典型用法代码示例。如果您正苦于以下问题:Golang DoCommand函数的具体用法?Golang DoCommand怎么用?Golang DoCommand使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了DoCommand函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Index
// The index API adds or updates a typed JSON document in a specific index, making it searchable.
// http://www.elasticsearch.org/guide/reference/api/index_.html
func Index(pretty bool, index string, _type string, id string, data interface{}) (api.BaseResponse, error) {
var url string
var retval api.BaseResponse
url = fmt.Sprintf("/%s/%s/%s?%s", index, _type, id, api.Pretty(pretty))
var method string
if id == "" {
method = "POST"
} else {
method = "PUT"
}
body, err := api.DoCommand(method, url, data)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
//fmt.Println(body)
return retval, err
}
示例2: IndexWithParameters
// IndexWithParameters takes all the potential parameters available
func IndexWithParameters(index string, _type string, id string, parentId string, version int, op_type string,
routing string, timestamp string, ttl int, percolate string, timeout string, refresh bool,
args map[string]interface{}, data interface{}) (api.BaseResponse, error) {
var url string
var retval api.BaseResponse
url, err := GetIndexUrl(index, _type, id, parentId, version, op_type, routing, timestamp, ttl, percolate, timeout, refresh)
if err != nil {
return retval, err
}
var method string
if len(id) == 0 {
method = "POST"
} else {
method = "PUT"
}
if VerboseLogging {
log.Printf("about to :%v %v %s", url, args, data)
}
body, err := api.DoCommand(method, url, args, data)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
return retval, err
}
示例3: MGet
// Multi GET API allows to get multiple documents based on an index, type (optional) and id (and possibly routing).
// The response includes a docs array with all the fetched documents, each element similar in structure to a document
// provided by the get API.
// see http://www.elasticsearch.org/guide/reference/api/multi-get.html
func MGet(pretty bool, index string, _type string, req string) (MGetResponseContainer, error) {
var url string
var retval MGetResponseContainer
if len(index) <= 0 {
url = fmt.Sprintf("/_mget?%s", api.Pretty(pretty))
}
if len(_type) > 0 && len(index) > 0 {
url = fmt.Sprintf("/%s/%s/_mget?%s", index, _type, api.Pretty(pretty))
} else if len(index) > 0 {
url = fmt.Sprintf("/%s/_mget?%s", index, api.Pretty(pretty))
}
body, err := api.DoCommand("GET", url, req)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
fmt.Println(body)
return retval, err
}
示例4: EsMap
//str := `{"person" : {"properties" : {"file" : {"type" : "attachment","fields" : {"title" : { "store" : "yes" },"file" : { "term_vector":"with_positions_offsets", "store":"yes" }}}}}}`
func EsMap(applogo string, indexmate IndexMate) int {
api.Domain = Esapi
table := strings.ToLower(indexmate.IndexTable)
url := strings.ToLower("/" + applogo + "/" + table + "/_mapping")
fmt.Println(url)
fileslist := strings.Split(strings.Replace(strings.ToLower(indexmate.IndexAttribute), " ", "", -1), ",")
var files string
for _, v := range fileslist {
files = files + `"` + v + `" : { "store" : "yes" },`
}
str := `{
"` + table + `" : {
"properties" : {
"file" : {
"type" : "attachment",
"fields" : {
` + files + `
"file" : { "term_vector":"with_positions_offsets", "store":"yes" }
}
}
}
}
}`
fmt.Println(str)
_, err := api.DoCommand("POST", url, str)
if err != nil {
fmt.Println(err.Error())
return 1
}
return 0
}
示例5: Index
// Index adds or updates a typed JSON document in a specific index, making it searchable, creating an index
// if it did not exist.
// if id is omited, op_type 'create' will be pased and http method will default to "POST"
// id is optional
// http://www.elasticsearch.org/guide/reference/api/index_.html
func Index(index string, _type string, id string, args map[string]interface{}, data interface{}) (api.BaseResponse, error) {
var retval api.BaseResponse
var url string
if len(id) > 0 {
url = fmt.Sprintf("/%s/%s/%s", index, _type, id)
} else {
url = fmt.Sprintf("/%s/%s", index, _type)
}
var method string
if len(id) == 0 {
method = "POST"
} else {
method = "PUT"
}
body, err := api.DoCommand(method, url, args, data)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
return retval, err
}
示例6: ClearCache
// ClearCache allows to clear either all caches or specific cached associated with one ore more indices.
// see http://www.elasticsearch.org/guide/reference/api/admin-indices-clearcache/
func ClearCache(clearId bool, clearBloom bool, indices ...string) (api.ExtendedStatus, error) {
var retval api.ExtendedStatus
var clearCacheUrl string
if len(indices) > 0 {
clearCacheUrl = fmt.Sprintf("/%s/_cache/clear", strings.Join(indices, ","))
} else {
clearCacheUrl = fmt.Sprintf("/_cache/clear")
}
var values url.Values = url.Values{}
if clearId {
values.Add("id", "true")
}
if clearBloom {
values.Add("bloom", "true")
}
clearCacheUrl += "?" + values.Encode()
body, err := api.DoCommand("POST", clearCacheUrl, nil)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
return retval, err
}
示例7: GetSource
// GetSource retrieves the document by id and converts it to provided interface
func GetSource(index string, _type string, id string, args map[string]interface{}, source interface{}) error {
url := fmt.Sprintf("/%s/%s/%s/_source", index, _type, id)
body, err := api.DoCommand("GET", url, args, nil)
if err == nil {
err = json.Unmarshal(body, &source)
}
return err
}
示例8: BulkSend
// This does the actual send of a buffer, which has already been formatted
// into bytes of ES formatted bulk data
func BulkSend(buf *bytes.Buffer) error {
_, err := api.DoCommand("POST", "/_bulk", nil, buf)
if err != nil {
BulkErrorCt += 1
return err
}
return nil
}
示例9: State
// http://www.elasticsearch.org/guide/reference/api/admin-cluster-update-settings.html
func State(settingType string, key string, value int) error {
url := "/_cluster/settings"
m := map[string]map[string]int{settingType: map[string]int{key: value}}
_, err := api.DoCommand("PUT", url, m)
if err != nil {
return err
}
return nil
}
示例10: EsIndex
func EsIndex(applogo string, number_of_shards, number_of_replicas string) int {
api.Domain = Esapi
url := "/" + applogo
str := `{"settings" : { "index" : { "number_of_shards" :` + number_of_shards + ` , "number_of_replicas" : ` + number_of_replicas + ` }}}`
_, err := api.DoCommand("POST", url, str)
if err != nil {
fmt.Println(err.Error())
return 1
}
return 0
}
示例11: NodesShutdown
// NodesShutdown allows the caller to shutdown between one and all nodes in the cluster
// delay is a integer representing number of seconds
// passing "" or "_all" for the nodes parameter will shut down all nodes
// see http://www.elasticsearch.org/guide/reference/api/admin-cluster-nodes-shutdown/
func NodesShutdown(delay int, nodes ...string) error {
shutdownUrl := fmt.Sprintf("/_cluster/nodes/%s/_shutdown", strings.Join(nodes, ","))
if delay > 0 {
var values url.Values = url.Values{}
values.Add("delay", strconv.Itoa(delay))
shutdownUrl += "?" + values.Encode()
}
_, err := api.DoCommand("POST", shutdownUrl, nil)
if err != nil {
return err
}
return nil
}
示例12: doSyncMapping
// doSyncMapping synchronizes the configuration definition with the Elastic
// Search backend mappings.
func doSyncMapping(c *cli.Context) {
config := ParseConfigOrDie(c.GlobalString("config"))
notAnalyzedProtos := []mappingProto{}
for _, notAnalyzedPattern := range config.NotAnalyzedPatterns {
notAnalyzedProtos = append(notAnalyzedProtos, notAnalyzedStringProto(notAnalyzedPattern))
}
for _, r := range config.Repositories {
template := makeTemplate(r.IndexPrefix(), notAnalyzedProtos)
if _, err := api.DoCommand("PUT", "/_template/vossibility-"+r.GivenName, nil, template); err != nil {
log.Fatal(err)
}
}
}
示例13: IndicesExists
// IndicesExists checks for the existance of indices. uses http 404 if it does not exist, and 200 if it does
// see http://www.elasticsearch.org/guide/reference/api/admin-indices-indices-exists/
func IndicesExists(indices ...string) (bool, error) {
var url string
if len(indices) > 0 {
url = fmt.Sprintf("/%s", strings.Join(indices, ","))
}
_, err := api.DoCommand("HEAD", url, nil, nil)
if err != nil {
eserror := err.(api.ESError)
if eserror.Code == 404 {
return false, err
} else {
return eserror.Code == 200, err
}
}
return true, nil
}
示例14: State
// State gets the comprehensive state information for the whole cluster
// see http://www.elasticsearch.org/guide/reference/api/admin-cluster-state/
func State(filter_nodes bool, filter_routing_table bool, filter_metadata bool, filter_blocks bool,
filter_indices ...string) (ClusterStateResponse, error) {
url := getStateUrl(false, false, false, false, filter_indices...)
var retval ClusterStateResponse
body, err := api.DoCommand("GET", url, nil)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
return retval, err
}
示例15: Count
// Count allows the caller to easily execute a query and get the number of matches for that query.
// It can be executed across one or more indices and across one or more types.
// The query can either be provided using a simple query string as a parameter,
// or using the Query DSL defined within the request body.
// http://www.elasticsearch.org/guide/reference/api/count.html
func Count(index string, _type string, args map[string]interface{}) (CountResponse, error) {
var url string
var retval CountResponse
url = fmt.Sprintf("/%s/%s/_count", index, _type)
body, err := api.DoCommand("GET", url, args, nil)
if err != nil {
return retval, err
}
if err == nil {
// marshall into json
jsonErr := json.Unmarshal(body, &retval)
if jsonErr != nil {
return retval, jsonErr
}
}
return retval, err
}