/** @const string profile type for query independent ranking features */
const FT_QUERY_INDEP_PROFILE_TYPE = 'fulltextQueryIndepProfile';
+ /** @const int flag for legalSearchChars: includes all chars allowed in a search query */
+ const CHARS_ALL = 1;
+
+ /** @const int flag for legalSearchChars: includes all chars allowed in a search term */
+ const CHARS_NO_SYNTAX = 2;
+
/**
* Perform a full text search query and return a result set.
* If full text searches are not supported or disabled, return null.
*/
public function supports( $feature ) {
switch ( $feature ) {
- case 'search-update':
- return true;
- case 'title-suffix-filter':
- default:
- return false;
+ case 'search-update':
+ return true;
+ case 'title-suffix-filter':
+ default:
+ return false;
}
}
* @return mixed the feature value or null if unset
*/
public function getFeatureData( $feature ) {
- if ( isset ( $this->features[$feature] ) ) {
+ if ( isset( $this->features[$feature] ) ) {
return $this->features[$feature];
}
return null;
}
/**
- * Get chars legal for search (at query time).
+ * Get chars legal for search
* NOTE: usage as static is deprecated and preserved only as BC measure
+ * @param int $type type of search chars (see self::CHARS_ALL
+ * and self::CHARS_NO_SYNTAX). Defaults to CHARS_ALL
* @return string
*/
- public static function legalSearchChars() {
+ public static function legalSearchChars( $type = self::CHARS_ALL ) {
return "A-Za-z_'.0-9\\x80-\\xFF\\-";
}
- /**
- * Get chars legal for search (at index time).
- *
- * @since 1.30
- * @return string
- */
- public function legalSearchCharsForUpdate() {
- return static::legalSearchChars();
- }
-
/**
* Set the maximum number of results to return
* and how many to skip before returning the first.
* might support more. The default in all implementations should be 'relevance.'
*
* @since 1.25
- * @return array(string) the valid sort directions for setSort
+ * @return string[] the valid sort directions for setSort
*/
public function getValidSorts() {
return [ 'relevance' ];
$this->setLimitOffset( $fallbackLimit );
$fallbackSearchResult = $this->completionSearch( $fbs );
$results->appendAll( $fallbackSearchResult );
- $fallbackLimit -= count( $fallbackSearchResult );
+ $fallbackLimit -= $fallbackSearchResult->getSize();
if ( $fallbackLimit <= 0 ) {
break;
}
/**
* Process completion search results.
* Resolves the titles and rescores.
+ * @param string $search
* @param SearchSuggestionSet $suggestions
* @return SearchSuggestionSet
*/
* Create a search field definition.
* Specific search engines should override this method to create search fields.
* @param string $name
- * @param int $type One of the types in SearchIndexField::INDEX_TYPE_*
+ * @param int $type One of the types in SearchIndexField::INDEX_TYPE_*
* @return SearchIndexField
* @since 1.28
*/