@@ -574,13 +574,13 @@ protected function renderPlaceHolder(array $matches): string
574574 * @param string $field
575575 * @param float[] $vector
576576 * @param int|null $topK
577- * @param string|null $preFilter
577+ * @param array| string|null $preFilter
578578 * @param array|string|null $includeTags
579579 * @param array|string|null $excludeTags
580580 *
581581 * @return string
582582 */
583- public function knn (string $ field , array $ vector , ?int $ topK = null , ? string $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): string
583+ public function knn (string $ field , array $ vector , ?int $ topK = null , array | string | null $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): string
584584 {
585585 $ params = $ this ->getCommonVectorParams ($ field , $ preFilter , $ includeTags , $ excludeTags );
586586 if (null !== $ topK ) {
@@ -605,13 +605,13 @@ public function knn(string $field, array $vector, ?int $topK = null, ?string $pr
605605 * @param string $field
606606 * @param string $query
607607 * @param int|null $topK
608- * @param string|null $preFilter
608+ * @param array| string|null $preFilter
609609 * @param array|string|null $includeTags
610610 * @param array|string|null $excludeTags
611611 *
612612 * @return string
613613 */
614- public function knnTextToVector (string $ model , string $ field , string $ query , ?int $ topK = null , ? string $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): string
614+ public function knnTextToVector (string $ model , string $ field , string $ query , ?int $ topK = null , array | string | null $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): string
615615 {
616616 $ params = $ this ->getCommonVectorParams ($ field , $ preFilter , $ includeTags , $ excludeTags );
617617 $ params ['model ' ] = $ model ;
@@ -635,13 +635,13 @@ public function knnTextToVector(string $model, string $field, string $query, ?in
635635 * @param float[] $vector
636636 * @param float $minReturn
637637 * @param string $minTraverse
638- * @param string|null $preFilter
638+ * @param array| string|null $preFilter
639639 * @param array|string|null $includeTags
640640 * @param array|string|null $excludeTags
641641 *
642642 * @return string
643643 */
644- public function vectorSimilarity (string $ field , array $ vector , float $ minReturn , string $ minTraverse = '-Infinity ' , ? string $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): string
644+ public function vectorSimilarity (string $ field , array $ vector , float $ minReturn , string $ minTraverse = '-Infinity ' , array | string | null $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): string
645645 {
646646 $ params = $ this ->getCommonVectorParams ($ field , $ preFilter , $ includeTags , $ excludeTags );
647647 $ params ['minReturn ' ] = $ minReturn ;
@@ -657,18 +657,21 @@ public function vectorSimilarity(string $field, array $vector, float $minReturn,
657657 * Get common knn and vector filter parameters.
658658 *
659659 * @param string $field
660- * @param string|null $preFilter
660+ * @param array| string|null $preFilter
661661 * @param array|string|null $includeTags
662662 * @param array|string|null $excludeTags
663663 *
664664 * @return array
665665 */
666- protected function getCommonVectorParams (string $ field , ? string $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): array
666+ protected function getCommonVectorParams (string $ field , array | string | null $ preFilter = null , array |string |null $ includeTags = null , array |string |null $ excludeTags = null ): array
667667 {
668668 $ params = [
669669 'f ' => $ field ,
670670 ];
671671 if (null !== $ preFilter ) {
672+ if (\is_array ($ preFilter )) {
673+ $ preFilter = implode (' preFilter= ' , $ preFilter );
674+ }
672675 $ params ['preFilter ' ] = $ preFilter ;
673676 }
674677 if (null !== $ includeTags ) {
0 commit comments