Oro Documentation
Oro Documentation
  • USERS
  • DEVELOPERS
    • Backend Developer Guide
    • Frontend Developer Guide
    • Bundles & Components
    • Web Services API Guide
    • Community Guide
  • CLOUD
  • BLOG
  • ACADEMY
  • Home >
  • Developer Documentation >
  • Backend Developer Guide >
  • Entities Data Management >
  • Search Index >
  • Fuzzy Search
  • Backend Developer Guide
    • Setup
      • System Requirements
        • Performance Optimization
        • MySQL Optimization
      • Development Environment
        • Community Edition
        • Enterprise Edition
        • Docker & Symfony Server
          • Setup on Ubuntu
          • Setup on macOS
          • Setup on Windows
        • Web Server Configuration
        • Environment Types
        • Infrastructure-Related Configuration Parameters
        • Healthcheck and Data Monitoring
        • SetUp From Database Dump
      • Demo Environment
        • Docker
        • VM VirtualBox
        • AWS Cloud Platform
        • Google Cloud Platform
        • Azure Cloud Platform
        • Vagrant Provision
      • Get the Oro Application Source Code
      • Installation
      • Installation in Sub-Folder
      • Post-Install Activities
        • Content Restrictions
        • Flat Pricing
        • Cookies Configuration
        • Protected Cookies
      • Loading Demo Data
      • Launch
      • Upgrade
      • Deploy Changes
      • Reinstall
    • Application Architecture
      • Technology Stack
        • Database
        • File Storage
        • Session Storage
        • Message Queue
        • Search Index
      • Application Structure
      • Application Framework
        • Architecture Principles of Oro Applications
      • Application Customization
      • Differences to Common Symfony Applications
      • Custom Oro Application
    • Bundles and Extensions
      • Create a Bundle
      • Install Extension from the Oro Extensions Store
      • Add an Extension to Oro Extensions Store
    • Entities
      • Create Entities
      • Database Structure Migrations
      • Extend Entities
        • Option Enum Set Fields
        • Extended Associations
        • Multi-Target Extended Associations
        • Serialized Fields
        • Validation for Extended Fields
        • Define Custom Form Type for Fields
        • Extending the Extended Field Rendering
      • Configure Entities
        • Define a New Object Configuration Attribute
        • Implementation
        • Add Configuration Options
        • Access Entities Configuration
      • Create Custom Entities
      • Merge Entities
      • CRUD Operations
      • Custom Field Validation
      • Entity Aliases
      • Entity Activities
      • Entity Fallback Values
      • Entity Manager
      • Entity Name Resolver and Providers
      • Entity Class Name Provider
      • Entity Structure Data Provider
      • Events
      • Dictionaries
      • Doctrine Field Types
      • Partial Indexes
      • Profiler of Duplicated Queries
      • Resolving ORM Query Hints
      • Entity Repositories as a Services
      • Transaction watchers for Default DBAL Connection
      • Attributes Configuration
      • Datagrids
        • Pass Request Parameters to the Grid
        • Enable Entity Pagination
      • Customize Datagrids
        • Backend Datagrid
          • Scopes
          • Datasources
            • Array Datasource
            • ORM Datasource
          • Parameter Binding
          • Extensions
            • Action Extension
            • Board Extension
            • Export Extension
            • Field ACL Extension
            • Formatter Extension
            • Grid Views Extension
            • Inline Editing
            • Mass Action Extension
            • Mode Extension
            • Pager Extension
            • Sorter Extension
            • Toolbar Extension
            • Totals Extension
          • Events
          • Advanced Grid Configuration
          • Editable Datagrid Cells
          • Selected Fields Providers
          • State Providers
          • References in YAML Configuration
        • Frontend Datagrid
          • Mass Action Configuration
      • Protect Entities Using ACLs
      • Entity Attachments
      • Customize CRUD Pages
      • Fixtures
    • Entities Data Management
      • Fixtures and Demo Data
      • Reports & Segments
      • Search Index
        • Configuration
        • Console Commands
        • Query Builder
        • Best Practices
        • Elasticsearch Configuration and Tuning
        • Fuzzy Search
        • Troubleshooting
      • Workflows
        • Introduction
        • Configuration Reference
        • Elements
        • Basic Configuration
        • Transition Forms
        • Translation Wizard
        • Configuration Example
      • Operations (Actions)
        • Glossary
        • Buttons
        • Action Groups
        • Configuration Reference
        • Actions and Conditions
        • Console Commands
      • Processes
      • Data Audit
    • Security
      • Introduction to Security in Oro Applications
      • ACL Manager
      • Custom Permissions
      • Field ACL
      • Configurable Permissions
      • CSRF Protection
      • Access Rules
      • Custom listeners
      • Access Levels and Ownership (Example)
    • Translation and Localization
      • Content and User Interface Translation
      • Translation Configuration
      • Data Fixtures
      • Schema Migrations
      • Localization
    • Integrations
      • Configuration
        • Basic Implementation
        • Configuration Reference
        • Additional Serializable Fields
        • Reverse Synchronization
        • Default Owner for Integration Related Entities
        • Additional Capabilities
      • Import and Export
        • Overview
        • Domain Model
        • Gaufrette
        • Fields Configuration
        • Import and Export Entities
        • Events
        • Extend Entities to Support Bulk Import and Export
        • Accelerate Import
        • Postponing Rows
      • Notification Alerts
    • Dashboards
    • Navigation
    • Emails
    • Message Queue
      • Message Queue Topics
      • Message Queue Jobs
      • Consumer
        • Resetting Container
      • Security Context
      • Logging, Error Handling and Debugging
        • Writing Logs to ELK Stack
      • Testing
      • RabbitMQ (Enterprise Edition Only)
        • Command Lines
        • RabbitMQ Exchanges
        • Divide Queue to Separate Queues
        • Configure RabbitMQ for Production
        • Re-deliver Message with Limited Attempts
        • Backup and Restore
        • Troubleshooting
      • Supervisord
      • Writing Logs to Stackdriver
      • Filtering Messages in the Message Producer
      • Buffering Messages in the Message Producer
      • Delaying Messages
    • Cron
    • WebSocket Notifications
      • Websocket Recipes
        • Use Maintenance Mode Notifications in Oro Applications
        • Use Content Outdated Notifications in Oro Applications
        • Create a Topic and a Handler for Publishing and Subscribing
        • Publish Messages to Existing Topics
        • Use Authentication and Authorization in WebSocket Connections
      • WebSocket Connection Configuration
    • Scopes
    • Feature Toggle
    • Logging
    • System Configuration
    • Configuration Reference
      • Annotations
        • @Acl
        • @AclAncestor
        • @Config
        • @ConfigField
        • @TitleTemplate
      • YAML
        • Bundles’ Configuration
        • Access Control Lists
        • Access Control List Categories
        • Assets
        • Dashboards
        • Datagrids
        • Entity Configuration
        • Navigation
        • Placeholders
        • JS Modules
        • Search Index
        • System Configuration
        • Workflows
    • Extending OroCRM
      • Add OroCommerce Capabilities to an OroCRM Application
    • Extending OroCommerce
      • Create Payment Method Integrations
      • Create Shipping Method Integrations
    • Akeneo Integration
    • Automated Tests
      • End-to-End
      • Integration
      • Functional
    • API Developer Guide
      • CLI Commands
      • Configure Stateless Security Firewalls
      • Configure Feature Depended Firewall Listeners
      • General Configuration
      • Configuration Reference
      • Configuration Extras
      • Configuration Extensions
      • Forms and Validators Configuration
      • Documenting API Resources
      • Actions
      • Request Type
      • Processors
      • Headers
      • Filters
      • Post Processors
      • How to
      • CORS Configuration
      • Testing REST API
      • Storefront REST API
      • Storefront Routes
      • Batch API
Version:
5.0 (latest)
  • 5.1-BETA.1
  • Contents
    • Configuration
    • Important Notes

Fuzzy Search

Important

The feature is available for the Enterprise edition only.

This feature enables the use of error-tolerant (fuzzy) search in search index requests to Elasticsearch. It works only with the Elasticsearch search engine.

It is assumed that the first character of every word in a request is correct. So, the application does not try to change the first character to fix an error.

The exact match has higher relevancy compared to the results with errors. It means that results that match the request word by word are at the top of the result set, while those with errors are at the bottom.

The error-tolerant search is applied only to the contains and not contains operators.

Configuration

The fuzzy search options can be configured both for the back-office and storefront. The options are identical.

The back-office settings are configured under System Configuration > General Setup > Search > Fuzzy Search on the global level only.

The storefront settings are configured under System Configuration > Commerce > Search > Fuzzy Search > Fuzzy Search in Storefront on the global and website levels.

The fuzzy search options are the following:

  • Enable Fuzzy Search enables fuzzy search in the appropriate area.
  • Error Tolerance sets the number of errors in each word the application can ignore. The default value is One, meaning that one error per word can be tolerated.
  • Tolerance Starts From sets a threshold for the error-tolerant search usage. The default value is 4, meaning that the application uses the exact match search for small words with 1-3 characters and the error-tolerant search for words with 4+ characters.
  • Tolerance Exclusions enables setting a regular expression for words that must not use the error-tolerant search; exact match search is used instead. This option is beneficial for SKUs, manufacturer IDs, and other identifiers that may have similar values and lead to false-positive results when the error-tolerant search is used.

Important Notes

The error-tolerant search is not an automatic correction. It tries to find similar results for the passed request phrase word by word. It is important to remember that the error-tolerant search can lead to several false-positive results.

The error-tolerant search changes only how the request is built, not the index mapping, structure, or content. The search is performed against the tokens stored in the Elasticsearch index. So, it behaves differently for the default, language-optimized, and custom index configurations.

Oro Documentation
  • Oro inc
  • OroCommerce
  • OroMarketplace
  • OroCRM
  • OroPlatform
  • Partners
  • Services
  • Events
  • Twitter
  • Terms & conditions
  • Privacy policy
  • Contributor license agreement

@2021 Oro, Inc. All Rights Reserved.

Back to top