enhance: Add dsl log field for HybridSearch (#39584)

The dsl fields are separated in sub request structs and cannot be
easiliy printed before. This PR adds a log helper to print the dsl
expressions of HybridSearchRequest.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
pull/39599/head
congqixia 2025-01-26 15:57:06 +08:00 committed by GitHub
parent 5f4bad6b23
commit f7b7bf69d1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 17 additions and 0 deletions

View File

@ -22,6 +22,7 @@ import (
"fmt"
"os"
"strconv"
"strings"
"sync"
"time"
@ -3285,6 +3286,21 @@ func (node *Proxy) HybridSearch(ctx context.Context, request *milvuspb.HybridSea
return rsp, err
}
type hybridSearchRequestExprLogger struct {
*milvuspb.HybridSearchRequest
}
// String implements Stringer interface for lazy logging.
func (l *hybridSearchRequestExprLogger) String() string {
builder := &strings.Builder{}
for idx, subReq := range l.Requests {
builder.WriteString(fmt.Sprintf("[No.%d req, expr: %s]", idx, subReq.GetDsl()))
}
return builder.String()
}
func (node *Proxy) hybridSearch(ctx context.Context, request *milvuspb.HybridSearchRequest, optimizedSearch bool) (*milvuspb.SearchResults, bool, bool, error) {
metrics.GetStats(ctx).
SetNodeID(paramtable.GetNodeID()).
@ -3337,6 +3353,7 @@ func (node *Proxy) hybridSearch(ctx context.Context, request *milvuspb.HybridSea
zap.Any("OutputFields", request.OutputFields),
zap.String("ConsistencyLevel", request.GetConsistencyLevel().String()),
zap.Bool("useDefaultConsistency", request.GetUseDefaultConsistency()),
zap.Stringer("dsls", &hybridSearchRequestExprLogger{HybridSearchRequest: request}),
)
defer func() {