Skip to content

Commit

Permalink
Merge branch 'main' into fix/json-tag-search-req
Browse files Browse the repository at this point in the history
# Conflicts:
#	index_search.go
#	types_easyjson.go
  • Loading branch information
Ja7ad committed Aug 1, 2024
2 parents 726e14a + 869e743 commit 1a59b95
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .code-samples.meilisearch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,11 @@ distinct_attribute_guide_filterable_1: |-
"url",
}
client.Index("products").UpdateFilterableAttributes(&filterableAttributes)
get_similar_post_1: |-
resp := new(meilisearch.SimilarDocumentResult)
client.Index("INDEX_NAME").SearchSimilarDocuments(&meilisearch.SimilarDocumentQuery{
Id: "TARGET_DOCUMENT_ID",
}, resp)
search_parameter_reference_ranking_score_threshold_1: |-
client.Index("INDEX_NAME").Search("badman", &meilisearch.SearchRequest{
RankingScoreThreshold: 0.2,
Expand Down
1 change: 1 addition & 0 deletions index.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ type IndexInterface interface {
DeleteAllDocuments() (resp *TaskInfo, err error)
Search(query string, request *SearchRequest) (*SearchResponse, error)
SearchRaw(query string, request *SearchRequest) (*json.RawMessage, error)
SearchSimilarDocuments(param *SimilarDocumentQuery, resp *SimilarDocumentResult) error

GetTask(taskUID int64) (resp *Task, err error)
GetTasks(param *TasksQuery) (resp *TaskResult, err error)
Expand Down
32 changes: 32 additions & 0 deletions index_search_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1743,3 +1743,35 @@ func TestIndex_SearchWithDistinct(t *testing.T) {
})
}
}

func TestIndex_SearchSimilarDocuments(t *testing.T) {
tests := []struct {
UID string
PrimaryKey string
client *Client
request *SimilarDocumentQuery
resp *SimilarDocumentResult
}{
{
UID: "indexUID",
client: defaultClient,
request: &SimilarDocumentQuery{
Id: "123",
},
resp: new(SimilarDocumentResult),
},
}

for _, tt := range tests {
t.Run(tt.UID, func(t *testing.T) {
i, err := SetUpIndexWithVector(tt.UID)
require.NoError(t, err)
c := tt.client
t.Cleanup(cleanup(c))

err = i.SearchSimilarDocuments(tt.request, tt.resp)
require.NoError(t, err)
require.NotNil(t, tt.resp)
})
}
}
23 changes: 23 additions & 0 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,29 @@ type DocumentsQuery struct {
Filter interface{} `json:"filter,omitempty"`
}

// SimilarDocumentQuery is query parameters of similar documents
type SimilarDocumentQuery struct {
Id interface{} `json:"id,omitempty"`
Embedder string `json:"embedder,omitempty"`
AttributesToRetrieve []string `json:"attributesToRetrieve,omitempty"`
Offset int64 `json:"offset,omitempty"`
Limit int64 `json:"limit,omitempty"`
Filter string `json:"filter,omitempty"`
ShowRankingScore bool `json:"showRankingScore,omitempty"`
ShowRankingScoreDetails bool `json:"showRankingScoreDetails,omitempty"`
RankingScoreThreshold float64 `json:"rankingScoreThreshold,omitempty"`
RetrieveVectors bool `json:"retrieveVectors,omitempty"`
}

type SimilarDocumentResult struct {
Hits []interface{} `json:"hits,omitempty"`
ID string `json:"id,omitempty"`
ProcessingTimeMS int64 `json:"processingTimeMs,omitempty"`
Limit int64 `json:"limit,omitempty"`
Offset int64 `json:"offset,omitempty"`
EstimatedTotalHits int64 `json:"estimatedTotalHits,omitempty"`
}

type CsvDocumentsQuery struct {
PrimaryKey string `json:"primaryKey,omitempty"`
CsvDelimiter string `json:"csvDelimiter,omitempty"`
Expand Down

0 comments on commit 1a59b95

Please sign in to comment.