You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@answer.apache.org by li...@apache.org on 2024/02/18 07:50:04 UTC
(incubator-answer-plugins) 04/05: fix: update algolia search plugin to be compatible with latest search interface (5 days ago)
This is an automated email from the ASF dual-hosted git repository.
linkinstar pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-answer-plugins.git
commit 512bc88a58a181accf0d92f88cfacec4f0d4f8e2
Author: hgaol <dh...@hotmail.com>
AuthorDate: Tue Jan 2 22:13:26 2024 +0800
fix: update algolia search plugin to be compatible with latest search interface (5 days ago)
(cherry picked from commit 0c16db54b98f2d156fdc476e12b0f51355453325)
---
search-algolia/algolia.go | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/search-algolia/algolia.go b/search-algolia/algolia.go
index 7d4ab3a..49c2ce4 100644
--- a/search-algolia/algolia.go
+++ b/search-algolia/algolia.go
@@ -72,8 +72,14 @@ func (s *SearchAlgolia) SearchContents(ctx context.Context, cond *plugin.SearchB
votesFilter string
)
if len(cond.TagIDs) > 0 {
- for _, tagID := range cond.TagIDs {
- tagFilters = append(tagFilters, "tags:"+tagID)
+ for _, tagGroup := range cond.TagIDs {
+ var tagsIn []string
+ if len(tagGroup) > 0 {
+ for _, tagID := range tagGroup {
+ tagsIn = append(tagsIn, "tags:" + tagID)
+ }
+ }
+ tagFilters = append(tagFilters, "(" + strings.Join(tagsIn, " OR ") + ")")
}
if len(tagFilters) > 0 {
filters += " AND " + strings.Join(tagFilters, " AND ")
@@ -122,8 +128,14 @@ func (s *SearchAlgolia) SearchQuestions(ctx context.Context, cond *plugin.Search
answersFilter string
)
if len(cond.TagIDs) > 0 {
- for _, tagID := range cond.TagIDs {
- tagFilters = append(tagFilters, "tags:"+tagID)
+ for _, tagGroup := range cond.TagIDs {
+ var tagsIn []string
+ if len(tagGroup) > 0 {
+ for _, tagID := range tagGroup {
+ tagsIn = append(tagsIn, "tags:" + tagID)
+ }
+ }
+ tagFilters = append(tagFilters, "(" + strings.Join(tagsIn, " OR ") + ")")
}
if len(tagFilters) > 0 {
filters += " AND " + strings.Join(tagFilters, " AND ")
@@ -179,8 +191,14 @@ func (s *SearchAlgolia) SearchAnswers(ctx context.Context, cond *plugin.SearchBa
questionIDFilter string
)
if len(cond.TagIDs) > 0 {
- for _, tagID := range cond.TagIDs {
- tagFilters = append(tagFilters, "tags:"+tagID)
+ for _, tagGroup := range cond.TagIDs {
+ var tagsIn []string
+ if len(tagGroup) > 0 {
+ for _, tagID := range tagGroup {
+ tagsIn = append(tagsIn, "tags:" + tagID)
+ }
+ }
+ tagFilters = append(tagFilters, "(" + strings.Join(tagsIn, " OR ") + ")")
}
if len(tagFilters) > 0 {
filters += " AND " + strings.Join(tagFilters, " AND ")