]> source.dussan.org Git - gitea.git/commitdiff
Meilisearch: require all query terms to be matched (#28293)
authorBrecht Van Lommel <brecht@blender.org>
Wed, 29 Nov 2023 15:00:59 +0000 (16:00 +0100)
committerGitHub <noreply@github.com>
Wed, 29 Nov 2023 15:00:59 +0000 (23:00 +0800)
Previously only the first term had to be matched. That default
Meilisearch behavior makes sense for e.g. some kind of autocomplete to
find and select a single result. But for filtering issues it means you
can't narrow down results by adding more terms.

This is also more consistent with other indexers and GitHub.

---

Reference:
https://www.meilisearch.com/docs/reference/api/search#matching-strategy

modules/indexer/issues/meilisearch/meilisearch.go

index 335395f2f67148ad1996bb8bf3725b19609aaf4c..ab8dcd0af45a8a766c137894b859b1a05700219e 100644 (file)
@@ -211,10 +211,11 @@ func (b *Indexer) Search(ctx context.Context, options *internal.SearchOptions) (
        skip, limit := indexer_internal.ParsePaginator(options.Paginator, maxTotalHits)
 
        searchRes, err := b.inner.Client.Index(b.inner.VersionedIndexName()).Search(options.Keyword, &meilisearch.SearchRequest{
-               Filter: query.Statement(),
-               Limit:  int64(limit),
-               Offset: int64(skip),
-               Sort:   sortBy,
+               Filter:           query.Statement(),
+               Limit:            int64(limit),
+               Offset:           int64(skip),
+               Sort:             sortBy,
+               MatchingStrategy: "all",
        })
        if err != nil {
                return nil, err