|
|
|
@ -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
|
|
|
|
|