|
@@ -156,7 +156,7 @@ func (tracelog) Printf(format string, v ...interface{}) {
|
|
|
fmt.Printf(format, v...)
|
|
|
}
|
|
|
|
|
|
-func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
+func SearchByKeyWordBack02(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
fmt.Println("keyWord:", keyWord)
|
|
|
pageSize := 20
|
|
|
keyWordArr, err := GetIndustryMapNameSlice(keyWord)
|
|
@@ -470,8 +470,9 @@ func SearchByKeyWordQuery(keyWord string) (result []*models.SearchItem, err erro
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func SearchByKeyWordBack02(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
+func SearchByKeyWord(keyWord string) (result []*models.SearchItem, err error) {
|
|
|
fmt.Println("keyWord:", keyWord)
|
|
|
+ keyWord = "医药"
|
|
|
pageSize := 20
|
|
|
keyWordArr, err := GetIndustryMapNameSlice(keyWord)
|
|
|
keyWordArr = RemoveDuplicatesAndEmpty(keyWordArr)
|
|
@@ -492,13 +493,10 @@ func SearchByKeyWordBack02(keyWord string) (result []*models.SearchItem, err err
|
|
|
elastic.SetTraceLog(log.New(logFile, "ES-TRACE: ", 0)),
|
|
|
elastic.SetSniff(false), elastic.SetErrorLog(errorlog))
|
|
|
|
|
|
- var esIndex = "cygx_article"
|
|
|
+ //var esIndex = "cygx_article"
|
|
|
+ var esIndex = "article_two"
|
|
|
searchMap := make(map[int]int)
|
|
|
- keyWordStr := strings.Join(keyWordArr, ",")
|
|
|
|
|
|
- fmt.Println("keyWordStr ", keyWordStr)
|
|
|
- keyWordStr = "费用"
|
|
|
- keyWord=keyWordStr
|
|
|
//queryString := elastic.NewQueryStringQuery(`Title:医疗 BodyText:医疗`).Analyzer("ik_smart")
|
|
|
|
|
|
//queryTeerms:=elastic.NewTermsQuery("Title","医疗","费用")
|
|
@@ -507,11 +505,28 @@ func SearchByKeyWordBack02(keyWord string) (result []*models.SearchItem, err err
|
|
|
//.Analyzer("ik_smart")
|
|
|
//.Analyzer("ik_smart")
|
|
|
//boolquery.Must(elastic.NewMatchQuery("Title", keyWord), elastic.NewMatchQuery("BodyText", keyWord))
|
|
|
- mapping:=client.GetMapping()
|
|
|
- mapJson,err:=json.Marshal(mapping)
|
|
|
- utils.FileLog.Info("%s",string(mapJson))
|
|
|
+ mapping := client.GetMapping()
|
|
|
+ mapJson, err := json.Marshal(mapping)
|
|
|
+ utils.FileLog.Info("%s", string(mapJson))
|
|
|
boolquery := elastic.NewBoolQuery()
|
|
|
- boolquery.Must(elastic.NewMatchQuery("Title", keyWord).Boost(2).Analyzer("ik_smart"), elastic.NewMatchQuery("BodyText", keyWord).Boost(1).Analyzer("ik_smart"))
|
|
|
+
|
|
|
+ keyLen := len(keyWordArr)
|
|
|
+ n := float64(keyLen)
|
|
|
+ matchArr := make([]elastic.Query, 0)
|
|
|
+ for _, v := range keyWordArr {
|
|
|
+ if v != "" {
|
|
|
+ matchq1 := elastic.NewMatchQuery("Title", v).Boost(n).Analyzer("ik_smart")
|
|
|
+ matchq2 := elastic.NewMatchQuery("BodyText", v).Boost(n).Analyzer("ik_smart")
|
|
|
+ matchArr = append(matchArr, matchq1)
|
|
|
+ matchArr = append(matchArr, matchq2)
|
|
|
+ }
|
|
|
+ n--
|
|
|
+ }
|
|
|
+ //matchArr=append(matchArr,matchq1)
|
|
|
+ //matchArr=append(matchArr,matchq2)
|
|
|
+
|
|
|
+ boolquery.Should(matchArr...)
|
|
|
+ //boolquery.Must(elastic.NewMatchQuery("BodyText", keyWord).Boost(1).Analyzer("ik_smart"))
|
|
|
|
|
|
highlight := elastic.NewHighlight()
|
|
|
highlight = highlight.Fields(elastic.NewHighlighterField("Title"), elastic.NewHighlighterField("BodyText"))
|
|
@@ -555,3 +570,85 @@ func SearchByKeyWordBack02(keyWord string) (result []*models.SearchItem, err err
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func AddMap() {
|
|
|
+ errorlog := log.New(os.Stdout, "APP", log.LstdFlags)
|
|
|
+ file := "./rdlucklog/eslog.log"
|
|
|
+ logFile, _ := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
|
|
|
+
|
|
|
+ client, err := elastic.NewClient(
|
|
|
+ elastic.SetURL(ES_URL),
|
|
|
+ elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD),
|
|
|
+ elastic.SetTraceLog(log.New(logFile, "ES-TRACE: ", 0)),
|
|
|
+ elastic.SetSniff(false), elastic.SetErrorLog(errorlog))
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("NewClient Err:", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ bodyJson := `{
|
|
|
+ "mappings": {
|
|
|
+ "properties": {
|
|
|
+ "ArticleId": {
|
|
|
+ "type": "integer"
|
|
|
+ },
|
|
|
+ "Title": {
|
|
|
+ "type": "text",
|
|
|
+ "analyzer": "ik_smart"
|
|
|
+ },
|
|
|
+ "BodyText": {
|
|
|
+ "type": "text",
|
|
|
+ "analyzer": "ik_smart"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}`
|
|
|
+ //var esMappingIndex = "article_mapping"
|
|
|
+ var esIndex = "article_two"
|
|
|
+
|
|
|
+ exists, err := client.IndexExists(esIndex).Do(context.Background()) //<5>
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("IndexExists Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("exists:", exists)
|
|
|
+ if !exists {
|
|
|
+ _, err = client.CreateIndex(esIndex).BodyJson(bodyJson).Do(context.Background())
|
|
|
+ //BodyJson(bodyJson).Do(context.Background())
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("CreateIndex Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ item, err := models.GetArticleDetailTestById(3584)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetArticleDetailById Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ content := html.UnescapeString(item.Body)
|
|
|
+ doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("create doc err:", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ bodyText := doc.Text()
|
|
|
+ item.BodyText = bodyText
|
|
|
+ //新增
|
|
|
+ resp, err := client.Index().Index(esIndex).Id(strconv.Itoa(item.ArticleId)).BodyJson(item).Do(context.Background())
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("insert es failed", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println(resp)
|
|
|
+ //mappping := make(map[string]interface{})
|
|
|
+ //mappping[esMappingIndex] = bodyJson
|
|
|
+ //putResult,err:=client.PutMapping().Index(esIndex).BodyJson(mappping).Do(context.Background())
|
|
|
+ //mapping,err := client.GetMapping().Index(esIndex).Do(context.Background())
|
|
|
+ //fmt.Println(mapping)
|
|
|
+ //mapJson, err := json.Marshal(mapping)
|
|
|
+ //utils.FileLog.Info("%s", string(mapJson))
|
|
|
+ //fmt.Println(esMappingIndex)
|
|
|
+ //
|
|
|
+ //fmt.Println(err)
|
|
|
+ //fmt.Println(putResult)
|
|
|
+}
|