|
|
@ -46,12 +46,12 @@ func numericQuery(value int64, field string) *query.NumericRangeQuery {
|
|
|
|
// SearchIssuesByKeyword searches for issues by given conditions.
|
|
|
|
// SearchIssuesByKeyword searches for issues by given conditions.
|
|
|
|
// Returns the matching issue IDs
|
|
|
|
// Returns the matching issue IDs
|
|
|
|
func SearchIssuesByKeyword(repoID int64, keyword string) ([]int64, error) {
|
|
|
|
func SearchIssuesByKeyword(repoID int64, keyword string) ([]int64, error) {
|
|
|
|
fields := strings.Fields(strings.ToLower(keyword))
|
|
|
|
terms := strings.Fields(strings.ToLower(keyword))
|
|
|
|
indexerQuery := bleve.NewConjunctionQuery(
|
|
|
|
indexerQuery := bleve.NewConjunctionQuery(
|
|
|
|
numericQuery(repoID, "RepoID"),
|
|
|
|
numericQuery(repoID, "RepoID"),
|
|
|
|
bleve.NewDisjunctionQuery(
|
|
|
|
bleve.NewDisjunctionQuery(
|
|
|
|
bleve.NewPhraseQuery(fields, "Title"),
|
|
|
|
bleve.NewPhraseQuery(terms, "Title"),
|
|
|
|
bleve.NewPhraseQuery(fields, "Content"),
|
|
|
|
bleve.NewPhraseQuery(terms, "Content"),
|
|
|
|
))
|
|
|
|
))
|
|
|
|
search := bleve.NewSearchRequestOptions(indexerQuery, 2147483647, 0, false)
|
|
|
|
search := bleve.NewSearchRequestOptions(indexerQuery, 2147483647, 0, false)
|
|
|
|
search.Fields = []string{"ID"}
|
|
|
|
search.Fields = []string{"ID"}
|
|
|
|