Why Some Site Search Queries Only Match Exact Values

For some Search Apps and search implementations, a search user may only get results when the query exactly matches keywords in the content. This can happen when searchable content is stored in an exact-value field or when the field tokenizer doesn't split terms the way users expect.

Example 1: Content stored in a String field

Problem

A String field isn't tokenized in SearchStax Site Search. This means the entire value is indexed as one exact term.

Indexed Document

Indexed document RTX-4090 Graphics Card
What gets indexed RTX-4090 Graphics Card

Search Behavior

User query Result
RTX No results
4090 No results
Graphics No results
RTX-4090 Graphics Card Match

Because the field is stored as one exact value, partial word searches can't match.

Recommended Fix

Switch to using a Fulltext field instead of a String field. Do this in your CMS or Web Crawler settings, then reindex or recrawl your data. String fields are primarily meant for faceting and filtering and are less commonly used as fields to search against. For more information, see Field Types and Choose Field Types for Site Search Features.

Example 2: Using WhitespaceTokenizer

Problem

WhitespaceTokenizer only splits text on spaces, which means punctuation remains inside the token. This happens with Drupal 10 or 11 Apps created before May 15, 2026. New Apps are created using StandardTokenizer by default instead.

Indexed Document

Indexed document RTX-4090 Graphics Card
What gets indexed rtx-4090
graphics
card

Search Behavior

User query Result
RTX No results
4090 No results
Graphics Match
RTX-4090 Match

Because RTX and 4090 aren't separate indexed tokens, they can't be partial matches.

Recommended Fix

Switch to using StandardTokenizer for the field being indexed that includes the content you want to make easier to find with search. After you make the change, reindex your data.

There is no option in the user interface for changing the tokenizer. You can change it by running the following command after replacing the placeholders for your App URL, field type name, and access token. Use a Read & Write token for this update. For token format and credential-scope guidance, see Authentication and Authorization.

curl -X POST \
  -H "Authorization: Token <read-write-token>" \
  -H "Content-Type: application/json" \
  --data-binary '{
    "replace-field-type": {
      "name": "<field-type-name>",
      "class": "solr.TextField",
      "positionIncrementGap": "100",
      "analyzer": {
        "tokenizer": {
          "class": "solr.StandardTokenizerFactory"
        },
        "filters": [
          {
            "class": "solr.LowerCaseFilterFactory"
          }
        ]
      }
    }
  }' \
  "<app-url>/schema"

If you're changing the English Fulltext field type, the field type name is typically text_en. Replace the following placeholders based on your Search App:

  • <app-url>: The endpoint for your App. You can copy the App URL from Site Search > App Settings > All APIs > Search & Indexing. The URL often ends with /update. Replace that suffix with /schema as shown in the example. For more information, see Search & Indexing.
  • <read-write-token>: An active Read & Write token for your App.
  • <field-type-name>: The field type name to update. For example, use text_en for the English Fulltext field type.

After you update the schema and reindex your data, reload the schema in Site Search if you need the updated field behavior to appear in the Site Search configuration screens. Then confirm that the relevant field is included in your Search Fields.

Articles in this section