app/Services/SearchService.php
private function rawGedcomFilter(array $search_terms): Closure
    {
        return static function (GedcomRecord $record) use ($search_terms): bool {
            // Ignore non-genealogy fields
            $gedcom = preg_replace('/\n\d (?:_UID) .*/', '', $record->gedcom());

            // Ignore matches in links
            $gedcom = preg_replace('/\n\d ' . Gedcom::REGEX_TAG . '( @' . Gedcom::REGEX_XREF . '@)?/', '', $gedcom);

            // Re-apply the filtering
            foreach ($search_terms as $search_term) {
                if (mb_stripos($gedcom, $search_term) === false) {
                    return false;
                }
            }

            return true;
        };
    }
private function rawGedcomFilter(array $search_terms): Closure
    {
        return static function (GedcomRecord $record) use ($search_terms): bool {
            // Ignore non-genealogy fields
            $gedcom = preg_replace('/\n\d (?:_UID) .*/', '', $record->gedcom());

            // Ignore matches in links
            $gedcom = preg_replace('/\n\d ' . Gedcom::REGEX_TAG . '( @' . Gedcom::REGEX_XREF . '@)?/', '', $gedcom);

            // Re-apply the filtering
            foreach ($search_terms as $search_term) {
                if (mb_stripos($gedcom, $search_term) === false) {
                    return false;
                }
            }

            return true;
        };
    }
private function rawGedcomFilter ( array $ search_terms ) : Closure { return static function ( GedcomRecord $ record ) use ( $ search_terms ) : bool { // Ignore non-genealogy fields $ gedcom = preg_replace ( '/\n\d (?:_UID) .*/' , '' , $ record -> gedcom ( ) ) ; // Ignore matches in links $ gedcom = preg_replace ( '/\n\d ' . Gedcom :: REGEX_TAG . '( @' . Gedcom :: REGEX_XREF . '@)?/' , '' , $ gedcom ) ; // Re-apply the filtering foreach ( $ search_terms as $ search_term ) { if ( mb_stripos ( $ gedcom , $ search_term ) === false ) { return false ; } } return true ; } ; }
A closure to filter records by privacy-filtered GEDCOM data.

@param array $search_terms

@return Closure
A closure to filter records by privacy - filtered GEDCOM data .