package usermod import ( "fmt" "91porn-server/common/elastic" "91porn-server/common/log" "91porn-server/models" ) var es *elastic.Client const ESTable = models.ESInfoUserTable func InitESIndex() { es = elastic.Init() var setting = elastic.M{ "settings": elastic.M{ "number_of_shards": elastic.NumberOfShards, "number_of_replicas": elastic.NumberOfReplicas, "analysis": elastic.M{ "analyzer": elastic.M{ "ik": elastic.M{ "tokenizer": elastic.AnalyzerIkSmart, }, }, }, }, "mappings": elastic.M{ "properties": elastic.M{ "name": elastic.M{ "type": "text", "analyzer": elastic.AnalyzerIkSmart, "search_analyzer": elastic.AnalyzerIkSmart, }, }, }, } if err := es.CreateIndices(ESTable, setting); err != nil { panic(fmt.Sprintf("%s index indeices err ==>[%+v]", ESTable, err)) } } func Search(keywords string, from int64, size int64) (data []*ESUserSource, err error) { query := elastic.M{ "query": elastic.M{ "match": elastic.M{ "name": keywords, }, }, "from": from, "size": size, } if err = es.Search(ESTable, &data, query); err != nil { log.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "Search", table, "CommonSearch", err), log.Any("keywords", keywords), log.Any("from", from), log.Any("size", size), ) return nil, err } return }