zhangqian
2023-12-18 16e06252079d36be7686a3d006c8b73565973c68
pkg/blevex/bleve.go
@@ -5,6 +5,7 @@
   "github.com/blevesearch/bleve/v2"
   "github.com/blevesearch/bleve/v2/mapping"
   "sync"
   "time"
)
// InitAnalyzer 加载自定义分词器(sego)
@@ -129,3 +130,34 @@
   }
   return results
}
func TimeSearch(indexName string, t time.Time, conditions map[string]interface{}, from, size int) (ids []string, total uint64, err error) {
   index, err := LoadIndex(indexName)
   if err != nil {
      return nil, 0, err
   }
   startDate := t
   endDate := t.Add(time.Hour * 24).Add(-time.Second * 1)
   timeRangeQuery := bleve.NewDateRangeQuery(startDate, endDate)
   boolQuery := bleve.NewBooleanQuery()
   boolQuery.AddMust(timeRangeQuery)
   for key, val := range conditions {
      query := bleve.NewQueryStringQuery(fmt.Sprintf("%v:%v", key, val))
      boolQuery.AddMust(query)
   }
   req := bleve.NewSearchRequest(boolQuery)
   req.From = from
   req.Size = size
   res, err := index.Search(req)
   if err != nil {
      return nil, 0, err
   }
   if res == nil {
      return
   }
   for _, ret := range dealResult(res) {
      ids = append(ids, ret.Id)
   }
   return ids, res.Total, nil
}