Make WordPress Core


Ignore:
Timestamp:
09/17/2024 09:56:18 PM (4 weeks ago)
Author:
flixos90
Message:

REST API: Support exact search in the REST API posts endpoint.

This changeset adds support for a new search_semantics enum query parameter that can be passed alongside the search string parameter. At this point, it only supports "exact" as possible value, but an enum is used for forward compatibility with potential enhancements like "sentence" search support. If search_semantics=exact is passed, it will look for an exact match rather than do a full text search, which for some use-cases is more appropriate and more performant.

Props mehulkaklotar, timothyblynjacobs, jimmyh61, ironprogrammer, johnregan3, mukesh27, costdev.
Fixes #56350.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php

    r58783 r59034  
    336336                $args['post__not_in'] = array_merge( $args['post__not_in'], $sticky_posts );
    337337            }
     338        }
     339
     340        if (
     341            isset( $registered['search_semantics'], $request['search_semantics'] )
     342            && 'exact' === $request['search_semantics']
     343        ) {
     344            $args['exact'] = true;
    338345        }
    339346
     
    28872894        }
    28882895
     2896        $query_params['search_semantics'] = array(
     2897            'description' => __( 'How to interpret the search input.' ),
     2898            'type'        => 'string',
     2899            'enum'        => array( 'exact' ),
     2900        );
     2901
    28892902        $query_params['offset'] = array(
    28902903            'description' => __( 'Offset the result set by a specific number of items.' ),
Note: See TracChangeset for help on using the changeset viewer.