Restricting Search Results to Product Titles and Tags

Topic summary

A developer seeks to refine their Shopify store’s search functionality to return results based only on product titles and tags, excluding product descriptions which currently cause misleading matches.

Key Requirements:

  • Restrict search scope to title and tags only
  • Sort results by date in descending order (newest first)
  • Developer has attempted solutions independently but needs community guidance

Technical Context:

  • Platform: Shopify theme customization
  • Code snippet provided shows theme configuration for grid layouts, filters, and toolbar settings
  • The shared code appears to be theme settings JSON (partially garbled/reversed text) rather than search logic

Current Status:
The question remains open with no solutions provided yet. The developer would likely need to modify Shopify’s search query parameters or implement custom filtering logic to achieve the desired title/tag-only search behavior.

Summarized with AI on November 19. AI used: claude-sonnet-4-5-20250929.

Greetings everyone! I’m currently working on improving the search functionality of our website’s search bar and would like some expert advice. Currently, the search bar retrieves results based on matching words found in any product related information; including description which is misleading. Thus, I’d like to refine it so that the search results are exclusively based on matching words found in the product title and tags.
Furthermore, it would be ideal if the search results could be sorted in descending order, with the most recent items appearing first. I’ve already invested considerable effort into tackling this challenge independently, but now I’m seeking insights from the technical community to help me complete this mission.
Thank you for considering my request.

Website: https://winnerforce-lb.com/

{%- if section.settings.show_layout_switch -%}
  {%- assign desktop_items_per_row = cart.attributes.collection_desktop_items_per_row | default: section.settings.grid_desktop_items_per_row | times: 1 -%}
  {%- assign mobile_items_per_row  = cart.attributes.collection_mobile_items_per_row | default: section.settings.grid_mobile_items_per_row | times: 1 -%}

  {%- if desktop_items_per_row >= 3 and desktop_items_per_row != section.settings.grid_desktop_items_per_row -%}
    {%- assign desktop_items_per_row = section.settings.grid_desktop_items_per_row -%}
  {%- endif -%}
{%- else -%}
  {%- assign desktop_items_per_row = section.settings.grid_desktop_items_per_row | times: 1 -%}
  {%- assign mobile_items_per_row  = section.settings.grid_mobile_items_per_row | times: 1 -%}
{%- endif -%}

{%- if desktop_items_per_row == 4 -%}
  {%- assign tablet_items_per_row = 3 -%}
{%- else -%}
  {%- assign tablet_items_per_row = 2 -%}
{%- endif -%}

{%- assign sort_by = search.sort_by | default: search.default_sort_by -%}
{%- assign active_filters_count = 0 -%}

{%- for filter in search.filters -%}
  {%- if filter.type == 'list' -%}
    {%- assign active_filters_count = active_filters_count | plus: filter.active_values.size -%}
  {%- elsif filter.type == 'price_range' and filter.min_value.value or filter.max_value.value -%}
    {%- assign active_filters_count = active_filters_count | plus: 1 -%}
  {%- endif -%}
{%- endfor -%}

{%- capture section_settings -%}
{
  "sectionId": {{ section.id | json }},
  "filterPosition": {{ section.settings.filter_position | json }}
}
{%- endcapture -%}

{% schema %}
{
  "name": "Search",
  "settings": [
    {
      "type": "header",
      "content": "Toolbar"
    },
    {
      "type": "checkbox",
      "id": "show_sort_by",
      "label": "Show sort by",
      "default": true
    },
    {
      "type": "checkbox",
      "id": "show_layout_switch",
      "label": "Show layout switch"
    },
    {
      "type": "select",
      "id": "toolbar_position",
      "label": "Position",
      "options": [
        {
          "value": "top",
          "label": "Top"
        },
        {
          "value": "bottom",
          "label": "Bottom"
        }
      ],
      "default": "top"
    },
    {
      "type": "header",
      "content": "Filters"
    },
    {
      "type": "checkbox",
      "id": "show_size_swatch",
      "label": "Show size swatch",
      "default": false
    },
    {
      "type": "checkbox",
      "id": "show_filters",
      "label": "Show filters",
      "info": "[Customize filters](/admin/menus)",
      "default": true
    },
    {
      "type": "checkbox",
      "id": "show_filter_color_swatch",
      "label": "Show filter color swatch",
      "info": "Transform color filters to swatches.",
      "default": true
    },
    {
      "type": "checkbox",
      "id": "expand_filters",
      "label": "Expand filters on desktop",
      "default": true
    },
    {
      "type": "select",
      "id": "filter_position",
      "label": "Desktop position",
      "options": [
        {
          "value": "sidebar",
          "label": "Sidebar"
        },
        {
          "value": "drawer",
          "label": "Drawer"
        }
      ],
      "default": "sidebar"
    },
    {
      "type": "link_list",
      "id": "filter_menu",
      "label": "Quick links",
      "info": "This menu won't show dropdown items."
    },
    {
      "type": "header",
      "content": "Grid"
    },
    {
      "type": "range",
      "id": "grid_items_per_page",
      "label": "Products per page",
      "min": 4,
      "max": 48,
      "step": 4,
      "default": 36
    },
    {
      "type": "select",
      "id": "grid_mobile_items_per_row",
      "label": "Products per row (mobile)",
      "options": [
        {
          "value": "1",
          "label": "1"
        },
        {
          "value": "2",
          "label": "2"
        }
      ],
      "default": "2"
    },
    {
      "type": "range",
      "min": 2,
      "max": 5,
      "id": "grid_desktop_items_per_row",
      "label": "Products per row (desktop)",
      "default": 4
    }
  ]
}
{% endschema %}