optimize #129 make tweet search by tag more exact when use meilisearch

pull/133/head
alimy 3 years ago
parent 64ad2c7076
commit 6f73103300

@ -65,6 +65,15 @@ func newMeiliLogHook() *meiliLogHook {
Uid: hook.idxName,
PrimaryKey: "id",
})
rankingRules := []string{
"message",
"time:desc",
}
sortableAttributes := []string{
"time:desc",
}
index.UpdateRankingRules(&rankingRules)
index.UpdateSortableAttributes(&sortableAttributes)
}
// 初始化addDocsCh

@ -25,10 +25,12 @@ func newMeiliTweetSearchServant() *meiliTweetSearchServant {
})
searchableAttributes := []string{"content", "tags"}
sortableAttributes := []string{"is_top", "latest_replied_on"}
filterableAttributes := []string{"tags"}
index := client.Index(s.Index)
index.UpdateSearchableAttributes(&searchableAttributes)
index.UpdateSortableAttributes(&sortableAttributes)
index.UpdateFilterableAttributes(&filterableAttributes)
}
return &meiliTweetSearchServant{
@ -78,10 +80,9 @@ func (s *meiliTweetSearchServant) Search(q *core.QueryReq, offset, limit int) (*
func (s *meiliTweetSearchServant) queryByContent(q *core.QueryReq, offset, limit int) (*core.QueryResp, error) {
resp, err := s.index.Search(q.Query, &meilisearch.SearchRequest{
Offset: int64(offset),
Limit: int64(limit),
AttributesToRetrieve: []string{"*"},
Sort: []string{"is_top:desc", "latest_replied_on:desc"},
Offset: int64(offset),
Limit: int64(limit),
Sort: []string{"is_top:desc", "latest_replied_on:desc"},
})
if err != nil {
return nil, err
@ -91,10 +92,10 @@ func (s *meiliTweetSearchServant) queryByContent(q *core.QueryReq, offset, limit
func (s *meiliTweetSearchServant) queryByTag(q *core.QueryReq, offset, limit int) (*core.QueryResp, error) {
resp, err := s.index.Search("#"+q.Query, &meilisearch.SearchRequest{
Offset: int64(offset),
Limit: int64(limit),
AttributesToRetrieve: []string{"*"},
Sort: []string{"is_top:desc", "latest_replied_on:desc"},
Offset: int64(offset),
Limit: int64(limit),
Filter: []string{"tags." + q.Query + "=1"},
Sort: []string{"is_top:desc", "latest_replied_on:desc"},
})
if err != nil {
return nil, err
@ -104,10 +105,9 @@ func (s *meiliTweetSearchServant) queryByTag(q *core.QueryReq, offset, limit int
func (s *meiliTweetSearchServant) queryAny(offset, limit int) (*core.QueryResp, error) {
resp, err := s.index.Search("", &meilisearch.SearchRequest{
Offset: int64(offset),
Limit: int64(limit),
Matches: true,
Sort: []string{"is_top:desc", "latest_replied_on:desc"},
Offset: int64(offset),
Limit: int64(limit),
Sort: []string{"is_top:desc", "latest_replied_on:desc"},
})
if err != nil {
return nil, err

Loading…
Cancel
Save