|
@@ -1,6 +1,7 @@
|
|
|
package elastic
|
|
|
|
|
|
import (
|
|
|
+ "net/url"
|
|
|
"os"
|
|
|
"runtime"
|
|
|
"sync"
|
|
@@ -1317,3 +1318,39 @@ func GetAllByIk(index, itype, qstr, findfields, order, fields string, start, lim
|
|
|
return nil
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//分词
|
|
|
+func AnalyzerWord(index, word string) (result []string) {
|
|
|
+ client := GetEsConn()
|
|
|
+ defer DestoryEsConn(client)
|
|
|
+ result = []string{}
|
|
|
+ p := url.Values{}
|
|
|
+ p["text"] = []string{word}
|
|
|
+ p["analyzer"] = []string{"ik"}
|
|
|
+ by, err := client.PerformRequest("GET", "/"+index+"/_analyze", p, nil)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("AnalyzerWord Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ b, err := by.Body.MarshalJSON()
|
|
|
+ if err != nil {
|
|
|
+ log.Println("AnalyzerWord MarshalJSON Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var res map[string][]map[string]interface{}
|
|
|
+ err = json.Unmarshal(b, &res)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("AnalyzerWord Unmarshal Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if res == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range res["tokens"] {
|
|
|
+ token, _ := v["token"].(string)
|
|
|
+ if token != "" {
|
|
|
+ result = append(result, token)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|