fix: adding indexer for assignee_ids

This commit is contained in:
puni9869
2026-06-07 13:20:03 +05:30
parent 567217d149
commit cf2a077e0d
3 changed files with 21 additions and 4 deletions
+14 -3
View File
@@ -27,7 +27,7 @@ import (
const (
issueIndexerAnalyzer = "issueIndexer"
issueIndexerDocType = "issueIndexerDocType"
issueIndexerLatestVersion = 6
issueIndexerLatestVersion = 7
)
const unicodeNormalizeName = "unicodeNormalize"
@@ -87,6 +87,7 @@ func generateIssueIndexMapping() (mapping.IndexMapping, error) {
docMapping.AddFieldMappingsAt("no_project", boolFieldMapping)
docMapping.AddFieldMappingsAt("poster_id", numberFieldMapping)
docMapping.AddFieldMappingsAt("assignee_id", numberFieldMapping)
docMapping.AddFieldMappingsAt("assignee_ids", numberFieldMapping)
docMapping.AddFieldMappingsAt("mention_ids", numberFieldMapping)
docMapping.AddFieldMappingsAt("reviewed_ids", numberFieldMapping)
docMapping.AddFieldMappingsAt("review_requested_ids", numberFieldMapping)
@@ -260,11 +261,21 @@ func (b *Indexer) Search(ctx context.Context, options *internal.SearchOptions) (
if options.AssigneeID != "" {
if options.AssigneeID == "(any)" {
queries = append(queries, inner_bleve.NumericRangeInclusiveQuery(optional.Some[int64](1), optional.None[int64](), "assignee_id"))
queries = append(queries, bleve.NewDisjunctionQuery(
inner_bleve.NumericRangeInclusiveQuery(optional.Some[int64](1), optional.None[int64](), "assignee_ids"),
inner_bleve.NumericRangeInclusiveQuery(optional.Some[int64](1), optional.None[int64](), "assignee_id"),
))
} else {
// "(none)" becomes 0, it means no assignee
assigneeIDInt64, _ := strconv.ParseInt(options.AssigneeID, 10, 64)
queries = append(queries, inner_bleve.NumericEqualityQuery(assigneeIDInt64, "assignee_id"))
if options.AssigneeID == "(none)" {
queries = append(queries, inner_bleve.NumericEqualityQuery(assigneeIDInt64, "assignee_id"))
} else {
queries = append(queries, bleve.NewDisjunctionQuery(
inner_bleve.NumericEqualityQuery(assigneeIDInt64, "assignee_ids"),
inner_bleve.NumericEqualityQuery(assigneeIDInt64, "assignee_id"),
))
}
}
}
+1
View File
@@ -35,6 +35,7 @@ type IndexerData struct {
ProjectColumnMap map[int64]int64 `json:"project_column_map,omitempty"` // Maps project ID to column ID for each project the issue is in
PosterID int64 `json:"poster_id"`
AssigneeID int64 `json:"assignee_id"`
AssigneeIDs []int64 `json:"assignee_ids"`
MentionIDs []int64 `json:"mention_ids"`
ReviewedIDs []int64 `json:"reviewed_ids"`
ReviewRequestedIDs []int64 `json:"review_requested_ids"`
+6 -1
View File
@@ -7,7 +7,6 @@ import (
"context"
"errors"
"fmt"
"gitea.dev/models/db"
issue_model "gitea.dev/models/issues"
"gitea.dev/modules/container"
@@ -87,6 +86,11 @@ func getIssueIndexerData(ctx context.Context, issueID int64) (*internal.IndexerD
return nil, false, err
}
assigneeIDs, err := issue_model.GetAssigneeIDsByIssue(ctx, issue.ID)
if err != nil {
return nil, false, err
}
projectIDs := make([]int64, 0, len(issue.Projects))
for _, project := range issue.Projects {
projectIDs = append(projectIDs, project.ID)
@@ -113,6 +117,7 @@ func getIssueIndexerData(ctx context.Context, issueID int64) (*internal.IndexerD
NoProject: len(projectIDs) == 0,
PosterID: issue.PosterID,
AssigneeID: issue.AssigneeID,
AssigneeIDs: assigneeIDs,
MentionIDs: mentionIDs,
ReviewedIDs: reviewedIDs,
ReviewRequestedIDs: reviewRequestedIDs,