@@ -79,4 +79,72 @@ void shouldAllowSettingSearchParamsJsonIndependently() {
7979 assertThat (request .getSearchParamsJson ()).isEqualTo (searchParamsJson );
8080 }
8181
82+ @ Test
83+ void shouldBuildRequestWithOnlyQuery () {
84+ String query = "test query" ;
85+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ().query (query ).build ();
86+
87+ assertThat (request .getQuery ()).isEqualTo (query );
88+ assertThat (request .getTopK ()).isEqualTo (SearchRequest .DEFAULT_TOP_K );
89+ assertThat (request .getSimilarityThreshold ()).isEqualTo (SearchRequest .SIMILARITY_THRESHOLD_ACCEPT_ALL );
90+ assertThat (request .getNativeExpression ()).isNull ();
91+ }
92+
93+ @ Test
94+ void shouldBuildRequestWithOnlyTopK () {
95+ int topK = 1 ;
96+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ().topK (topK ).build ();
97+
98+ assertThat (request .getQuery ()).isEmpty ();
99+ assertThat (request .getTopK ()).isEqualTo (topK );
100+ assertThat (request .getSimilarityThreshold ()).isEqualTo (SearchRequest .SIMILARITY_THRESHOLD_ACCEPT_ALL );
101+ }
102+
103+ @ Test
104+ void shouldBuildRequestWithOnlySimilarityThreshold () {
105+ double threshold = 0.95 ;
106+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ().similarityThreshold (threshold ).build ();
107+
108+ assertThat (request .getQuery ()).isEmpty ();
109+ assertThat (request .getTopK ()).isEqualTo (SearchRequest .DEFAULT_TOP_K );
110+ assertThat (request .getSimilarityThreshold ()).isEqualTo (threshold );
111+ }
112+
113+ @ Test
114+ void shouldHandleEmptyQuery () {
115+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ().query ("" ).topK (1 ).build ();
116+
117+ assertThat (request .getQuery ()).isEmpty ();
118+ assertThat (request .getTopK ()).isEqualTo (1 );
119+ }
120+
121+ @ Test
122+ void shouldHandleComplexNativeExpression () {
123+ String complexExpression = "(level > 1 AND type = 'type1') OR (mode IN ['mode1'] AND value >= 0.1)" ;
124+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ().nativeExpression (complexExpression ).build ();
125+
126+ assertThat (request .getNativeExpression ()).isEqualTo (complexExpression );
127+ }
128+
129+ @ Test
130+ void shouldHandleComplexSearchParamsJson () {
131+ String complexJson = "{\" values\" :{\" value1\" :1,\" value2\" :1.1},\" value\" :{\" value\" :1,\" value\" :1}}" ;
132+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ().searchParamsJson (complexJson ).build ();
133+
134+ assertThat (request .getSearchParamsJson ()).isEqualTo (complexJson );
135+ }
136+
137+ @ Test
138+ void shouldUpdateFieldsWithMultipleCalls () {
139+ MilvusSearchRequest request = MilvusSearchRequest .milvusBuilder ()
140+ .query ("initial" )
141+ .query ("updated" )
142+ .topK (1 )
143+ .topK (1 )
144+ .build ();
145+
146+ assertThat (request .getQuery ()).isEqualTo ("updated" );
147+ assertThat (request .getTopK ()).isEqualTo (1 );
148+ }
149+
82150}
0 commit comments