private function isEquivalentTextIndexWeights(IndexInfo $mongoIndex, array $documentIndex) : bool
    {
        $mongoIndexWeights    = $mongoIndex['weights'];
        $documentIndexWeights = $documentIndex['options']['weights'] ?? [];

        // If not specified, assign a default weight for text fields
        foreach ($documentIndex['keys'] as $key => $type) {
            if ($type !== 'text' || isset($documentIndexWeights[$key])) {
                continue;
            }

            $documentIndexWeights[$key] = 1;
        }

        /* MongoDB returns the weights sorted by field name, but we'll sort both
         * arrays in case that is internal behavior not to be relied upon. */
        ksort($mongoIndexWeights);
        ksort($documentIndexWeights);

        /* Avoid a strict equality check here. The numeric type returned by
         * MongoDB may differ from the document index without implying that the
         * indexes themselves are inequivalent. */
        // phpcs:disable SlevomatCodingStandard.ControlStructures.DisallowEqualOperators.DisallowedEqualOperator
        return $mongoIndexWeights == $documentIndexWeights;
    }
private function isEquivalentTextIndexWeights(IndexInfo $mongoIndex, array $documentIndex) : bool
    {
        $mongoIndexWeights    = $mongoIndex['weights'];
        $documentIndexWeights = $documentIndex['options']['weights'] ?? [];

        // If not specified, assign a default weight for text fields
        foreach ($documentIndex['keys'] as $key => $type) {
            if ($type !== 'text' || isset($documentIndexWeights[$key])) {
                continue;
            }

            $documentIndexWeights[$key] = 1;
        }

        /* MongoDB returns the weights sorted by field name, but we'll sort both
         * arrays in case that is internal behavior not to be relied upon. */
        ksort($mongoIndexWeights);
        ksort($documentIndexWeights);

        /* Avoid a strict equality check here. The numeric type returned by
         * MongoDB may differ from the document index without implying that the
         * indexes themselves are inequivalent. */
        // phpcs:disable SlevomatCodingStandard.ControlStructures.DisallowEqualOperators.DisallowedEqualOperator
        return $mongoIndexWeights == $documentIndexWeights;
    }
private function isEquivalentTextIndexWeights ( IndexInfo $ mongoIndex , array $ documentIndex ) : bool { $ mongoIndexWeights = $ mongoIndex [ 'weights' ] ; $ documentIndexWeights = $ documentIndex [ 'options' ] [ 'weights' ] ?? [ ] ; // If not specified, assign a default weight for text fields foreach ( $ documentIndex [ 'keys' ] as $ key => $ type ) { if ( $ type !== 'text' || isset ( $ documentIndexWeights [ $ key ] ) ) { continue ; } $ documentIndexWeights [ $ key ] = 1 ; } /* MongoDB returns the weights sorted by field name, but we'll sort both
         * arrays in case that is internal behavior not to be relied upon. */ ksort ( $ mongoIndexWeights ) ; ksort ( $ documentIndexWeights ) ; /* Avoid a strict equality check here. The numeric type returned by
         * MongoDB may differ from the document index without implying that the
         * indexes themselves are inequivalent. */ // phpcs:disable SlevomatCodingStandard.ControlStructures.DisallowEqualOperators.DisallowedEqualOperator return $ mongoIndexWeights == $ documentIndexWeights ; }
Determine if the text index weights for a MongoDB index can be considered
equivalent to those for an index in class metadata.
Determine if the text index weights for a MongoDB index can be considered equivalent to those for an index in class metadata .