|
@@ -1,22 +1,17 @@
|
|
|
package jy
|
|
|
|
|
|
import (
|
|
|
- "crypto/rand"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
- "io/ioutil"
|
|
|
"log"
|
|
|
- "math/big"
|
|
|
- "net/http"
|
|
|
- "net/url"
|
|
|
"regexp"
|
|
|
"sort"
|
|
|
"strings"
|
|
|
"time"
|
|
|
- "unicode"
|
|
|
|
|
|
util "app.yhyue.com/moapp/jybase/common"
|
|
|
. "app.yhyue.com/moapp/jybase/date"
|
|
|
+ "app.yhyue.com/moapp/jybase/es"
|
|
|
"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
|
|
|
"app.yhyue.com/moapp/jybase/mail"
|
|
|
. "app.yhyue.com/moapp/jybase/mongodb"
|
|
@@ -98,64 +93,8 @@ func InterceptSearchKW(word string, keywordsLimit int, isFilter bool) (b_word, a
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func HttpEs(ques, analyzer, esAddress string) (res string) {
|
|
|
- var addrs []string
|
|
|
- surl := ""
|
|
|
- for _, s := range strings.Split(esAddress, ",") {
|
|
|
- addrs = append(addrs, s)
|
|
|
- }
|
|
|
- i, _ := rand.Int(rand.Reader, big.NewInt(int64(len(addrs)))) //随机
|
|
|
- surl = addrs[int(i.Int64())] + "/bidding/_analyze"
|
|
|
- URL, _ := url.Parse(surl)
|
|
|
- Q := URL.Query()
|
|
|
- Q.Add("text", ques)
|
|
|
- Q.Add("analyzer", analyzer)
|
|
|
- URL.RawQuery = Q.Encode()
|
|
|
- resp, err := http.Get(URL.String())
|
|
|
- if err != nil {
|
|
|
- log.Println("es连接失败 err1:", err)
|
|
|
- resp, err = getesResp(ques, analyzer, addrs)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- result, err := ioutil.ReadAll(resp.Body)
|
|
|
- if err == nil {
|
|
|
- defer resp.Body.Close()
|
|
|
- var resmap map[string]interface{}
|
|
|
- json.Unmarshal(result, &resmap)
|
|
|
- if resmap != nil && resmap["tokens"] != nil {
|
|
|
- tokens := util.ObjArrToMapArr(resmap["tokens"].([]interface{}))
|
|
|
- for _, v := range tokens {
|
|
|
- token := util.ObjToString(v["token"])
|
|
|
- if len([]rune(token)) == 1 && !unicode.Is(unicode.Scripts["Han"], []rune(token)[0]) { //(P260保留单个汉字)
|
|
|
- continue
|
|
|
- }
|
|
|
- if res != "" {
|
|
|
- res += "+"
|
|
|
- }
|
|
|
- res += token
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-//
|
|
|
-func getesResp(ques, analyzer string, addrs []string) (resp *http.Response, err error) {
|
|
|
- for _, v := range addrs {
|
|
|
- surl := v + "/bidding/_analyze"
|
|
|
- URL, _ := url.Parse(surl)
|
|
|
- Q := URL.Query()
|
|
|
- Q.Add("text", ques)
|
|
|
- Q.Add("analyzer", analyzer)
|
|
|
- URL.RawQuery = Q.Encode()
|
|
|
- resp, err = http.Get(URL.String())
|
|
|
- if err == nil {
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- return resp, err
|
|
|
+func HttpEs(ques, analyzer, esAddress string) string {
|
|
|
+ return es.Analyze(ques, "bidding", analyzer)
|
|
|
}
|
|
|
|
|
|
//发送邮箱验证码
|