=== WP Fast Total Search - The Power of Indexed Search ===
Contributors: Epsiloncool
Tags: search pdf, fulltext search, better search, relevant search, extended search
Requires at least: 5.0
Tested up to: 6.8.2
Stable tag: 1.79.274
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html

Extends the default fulltext search with relevance, jet speed and ability to search any posts, metadata, taxonomy, shortcode content and more data.

== Description ==

**🚀 Supercharge Your WordPress Search with WP Fast Total Search (WPFTS)!**

Tired of the standard WordPress search that doesn't find what you need? Are your users struggling to find content hidden in meta fields, shortcodes, or even files?

**WP Fast Total Search (WPFTS)** is the solution that revolutionizes search on your site, making it truly **fast, accurate, and comprehensive**.

**Why WPFTS is Exactly What You Need:**

✨ **Searches EVERYWHERE:**

Unlike standard search, WPFTS indexes and finds information not only in post **titles and content**, but also within:

*   **Meta fields** (Custom Fields)
*   **Custom Post Types**
*   Text **inside shortcodes**
*   Content of **attached files** (PDF, DOCX, etc. in the Pro version)
*   Dynamically **generated content**

⚙️ **Simplicity and Compatibility:**

*   **No External Dependencies:** Doesn't require installing heavy external services (like Elasticsearch or Solr). Perfect for **standard shared hosting**!
*   **Enhances, Doesn't Replace:** WPFTS *enhances* the standard WordPress search (`WP_Query`), it doesn't break it. All your plugins and themes using standard search will **automatically work better** with WPFTS.
*   **Works Out-of-the-Box:** Just install and activate.

🎯 **Flexibility and Control:**

*   **Customizable Relevance:** Control what matters most in search results! Assign "weights" for title, content, and each meta field using an **improved TF-IDF algorithm**.
*   **Live Search (AJAX):** Let users see search results instantly as they type. Easily added via the widget or shortcode `[wpfts_widget]`.
*   **Phrase Search Support:** Find exact matches.
*   **Flexible Sorting:** Sort results by relevance, date, title, and many other parameters.

**Key Advantages of WPFTS:**

*   ✅ **True Indexed Search:** Fast and efficient.
*   ✅ **No External Libraries or Services Required:** Everything works right inside your website.
*   ✅ **HTML Cleanup:** Correctly indexes content by removing tags and comments (important for Gutenberg).
*   ✅ **Language Support:** Ready translations (English, German, Dutch, Russian, Ukrainian) and easy to add your own.
*   ✅ **API and Documentation:** Extend and customize the plugin to fit your needs.
*   ✅ **Compatibility:** Works great with PHP 5.6 up to PHP 8.2+.
*   ✅ **Extensibility:** Supports add-ons, with a large library available and the ability to create your own.

---

**💎 Get Even More with WP Fast Total Search Pro!**

The Pro version unlocks powerful features:

*   📄 **Search Inside File Content:** Indexes text within PDF, DOC, DOCX, and other formats.
*   🔍 **Filter Search by File Type** (MIME-type).
*   💡 **Smart Excerpts:** Displays PDF content snippets directly in search results.
*   ☁️ **Optional External Service** for text extraction from files (license included).
*   🤝 **Priority Technical Support:** Help with installation, configuration, and conflict resolution.
*   🔄 **Regular Auto-Updates:** Just like plugins from the WordPress repository.
*   🧩 **Premium Add-on Bundle:** Integrations with popular plugins (WordPress Download Manager, Filebase Pro, Delicious Downloads, etc.) to index their content and files. *Ability to request custom add-on development.*

**[TEST DRIVE - TRY FOR FREE](https://fulltextsearch.org/evaluation/ "WP Fast Total Search Pro Evaluation License") | [GET PRO](https://fulltextsearch.org/buy/ "Download WP Fast Total Search Pro") 💎**

---

**🌍 Translations**

We are grateful to the translators who made the plugin accessible worldwide:

*   torkeller ([@torkeller](https://profiles.wordpress.org/torkeller/)) for German and German_formal 
*   Peter Smits [@psmits1567](https://wordpress.org/support/users/psmits1567/) for Dutch
*   Lera Suhanova for Ukrainian
*   epsiloncool [@epsiloncool](https://profiles.wordpress.org/epsiloncool/) for Russian

Join us in translating the plugin into your language! Let's make it useful for everyone.

---

**📚 Documentation**

Detailed information can be found in the [Documentation](https://fulltextsearch.org/documentation/ "WP Fast Total Search Documentation").

== Installation ==

1. Unpack and upload `fulltext-search` folder with all files to the `/wp-content/plugins/` directory
1. Activate the plugin through the 'Plugins' menu in WordPress
1. Press `Rebuild Index` button to initialize index (actually this function will run automatically on first plugin install)

== Frequently Asked Questions ==

= Where can I put some notices, comments or bugreports? =

Do not hesistate to write to us at [Contact Us](https://fulltextsearch.org/contact/ "Contact Us") page.

= Where do I report security bugs found in this plugin? =

Please report security bugs found in the source code of the WPFTS Fast Total Search plugin through the [Patchstack Vulnerability Disclosure  Program](https://patchstack.com/database/vdp/fulltext-search). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin. # Security Policy ## Reporting Security Bugs Please report security bugs found in the YOUR_PLUGIN_NAME_HERE plugin's source code through the [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/fulltext-search). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.

== Security Policy ==

= Reporting Security Bugs =

Please report security bugs found in the WP Fast Total Search plugin's source code through the [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/fulltext-search). The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.

== Screenshots ==

1. Main Configuration
2. Indexing Rules
3. Indexing Defaults
4. Smart Excerpts (Google-like search results) and styling settings
5. Analytics (Query Log)
6. Support & Docs
7. Data Collection Diagram
8. Search Results Example

== Changelog ==

= 1.79.274 =
* Security fix to close non-critical breach

= 1.79.270 =
* Approved compatibility with Wordpress 6.8

= 1.79.269 =
* Made plugin description user-friendly

= 1.79.268 =
* Added a support for WP native core/post-excerpt block
* Sufficiently improved an IRules statistics calculation speed to prevent multiple runs when several admins are working on WordPress
* Fixed a security breach in AJAX request processing code

= 1.79.264 =
* Fixed a potential security breach in updateindex AJAX request

= 1.79.262 =
* Added Gutenberg WP Blocks support (WPFTS Live Search Widget is now available for block themes)
* Added request protection (nonce) for Rebuild Index AJAX Request and Try DB Update Request. Huge thanks to @Mika from PatchStack for discovering this!
* Added Stemming support for query words.
* Improved Divi Theme compatibility support.
* Fixed Notice in Smart Excerpts sorting algorithm.

= 1.78.258 =
* Added compatibility hook functionalities for themes
* Fixed a bug with "score" value preventing it from displaying

= 1.77.256 =
* Fixed a problem with memory_limit value conversion when it's given in Gigabytes (G).
* Fixed a problem with "style" and "script" tags removal from the indexing when the corresponding option is set.

= 1.76.254 =
* Fixed some issues with autocomplete (Live Search Widget functions)

= 1.75.250 =
* Increased core algorithm search speed (especially for popular words)
* Added "Relevance Finetune" Settings. Alpha version, try with care.

= 1.74.247 =
* Fixed possible loop while updating DB and error happen
* Added detailed info on DB update fail so admin can ask technical support (us) what to do
* Fixed "Check Rules" link (was wrong for websites with /subfolder/ URLs)

= 1.73.245 =
* Fixed some issues with database syncronization
* Fixed some notices appeared on PHP8.3+
* Added support for sub-index records

= 1.72.240 =
* Fixed wrong database structure syncronization while plugin updates (thanks to Rafael Fischmann / @rfischmann !)

= 1.71.238 =
* Added Smart Text Fragments functionality that allows to see clicked sentences on the full post page and highlights searched words (still in alpha)
* Added an ability to limit query log size via Analytics / Query Log / Settings

= 1.70.236 =
* Fixed CSRF Vulnerability detected by Majed Refaea (thanks a lot!)

= 1.69.234 =
* Fixed XSS Vulnerability detected by justakazh and Majed Refaea (thanks, guys!)

= 1.68.232 =
* Urgent fix for MySQL older versions: VARCHAR index size limit.

= 1.67.231 =

* Changed logo and style of the plugin
* Fixed warning in indexer (no finish_ts variable found)
* Fixed indexing on bad words found (some non-latin words incorrectly indexed by MySQL that's why inserting to the vectors table failed)
* IRules logic changed to be compatible with the wpfts_irule/filters
* Fixed plugin styling on non-english WP installations (the plugin admin interface was completely broken in NL, for example)
* Added support for non-string chunks

= 1.65.225 =

This release is a result of a lots of improvements, fixes and updates.

* The internal code structure has been improved to make it easier to read and edit
* Improved compatibility with the latest version of Wordpress
* Enormous work has been done to increase code security
* Added support for indexing rules
* Added the ability to configure post_type and post_status to create the main index
* Added check and warning if the amount of script memory is insufficient for correct operation
* Fixed errors in the operation of presets
* Fixed errors in fast search in the Wordpress control panel
* Fixed errors in logging search queries
* Added processing of special clusters __debug and __used_rules
* Script execution session time increased to 60 seconds when indexing (if allowed by your hosting provider)
* Improved plugin performance with PHP8.3.6
* The Flare service now automatically reconnects when the connection is lost, and if the connection is successful, it blocks AJAX ping to relieve the server from frequent AJAX requests.

= 1.61.215 =
* Added Flare re-connection to prevent falling back to the polling scheme after some time or when network lost
* Fixed broken "default search logic" setting
* Added experimental "Indexing Rules" tab

= 1.60.213 =
* Fixed Cross-site Scripting (XSS) Vulnerability issue in WPFTS :: Live Search widget. Thanks to [Ngô Thiên An (ancorn_ from VNPT-VCI)](https://patchstack.com/database/researcher/090515a6-9651-41fa-9465-fd542e38e526) for discovering this issue!

= 1.59.211 =
* Fixed another bug with "tp" table

= 1.59.209 =
* Fixed a bug with constantly growing "tp" table
* Improved compatibility with WP 6.3.2
* Removed extra files / Some clean up

= 1.58.207 =
* Fixed a bug with memory_limit = -1 that can be set on some hostings
* Improved compatibility with WP 6.3.1

= 1.57.205 =
* Fixed a MySQL bug with indexing some words contains specific hieroglyphic literals (Japanese, Chinese, Korean etc)
* Fixed a bug with logging

= 1.56.203 =
* Some bugs fixed

= 1.55.201 =
* Officially changed the plugin's name to "WP Fast Total Search"
* The code was reorganized to be clearer and simpler to update
* The plugin's description was improved
* Added Query Log details page
* Improved compatibility with WordPress 6.2.1 and PHP 8.2+
* Improved block-based themes support
* Added smart updater for database allowed to preserve current index while updating the plugin version
* The main search algorithm was redone to be sufficiently less RAM-consuming and faster
* Fixed 21 issues in the code

= 1.51.178 =
* Query Log analyzer added
* Index Browser added
* Fixed 9 small issues

= 1.50.175 =
* Improved support for Block-based themes (in particular, 2022) - Smart Excerpts is now shown in those themes
* Preparations for the modular structure
- Maybe added a lot of bugs, please report! (will be fixed soon)

= 1.50.168 =
* Compatibility with WP 6.0
* Fixed bugs with Live Search widget
* Fixed 5 minor bugs

= 1.49.164 =
* Localization-related fixes
* Analytics submenu added
* Text description fixed

= 1.48.162 =
* Added more flexibility for WPFTS Live Search widget and widget shortcode

= 1.48.156 =
* Added "Remove non-text HTML nodes" functionality
* Fixed 3 issues

= 1.48.150 =
* Increased compatibility with PHP8.0+
* Fixed 7 bugs with database access and deprecated code
* Added hooks to add flexibility to remove/add specific shortcodes from the indexing

= 1.47.148 =
* Improved style/js loading code (thanks to @nextendweb !)

= 1.47.146 =
* A course is taken to significantly improve the functionality of the plugin. Changed the design of the admin panel

= 1.46.140 =
* Added primary keys to temporary tables to let 3rd-party plugins (like backup tools) work better with wpftsi_* tables

= 1.45.138 =
* Added fail detection to the indexer to prevent stops because of 3rd party plugins' fails

= 1.44.134 =
* Fix: enforce indexer via AJAX in case the server is local with wrong DNS/hosts file or disabled CRON

= 1.44.132 =
* Replaced TRUNCATE with CREATE-RENAME-DROP to avoid system locking

= 1.44.130 =
* Added a checkbox to switch ON/OFF the search inside WP admin
* Improved indexer execution for hostings where DNS is configured incorrectly and/or native WP cron does not work properly
* Added a fix (optional, with the checkbox switch) for MariaDB issue with new experimental search option
* WPFTS Index Optimizer is switched OFF by default now (you can bring it back using the switch)
* Rebuild Index button from Attachment Edit page now works again
* Optimized IDLE mode for indexer
* Added wpfts_set_pause() method
* Visual issues fixed
* Fixed main_search tweaker routine

= 1.43.128 =
* Added Flare support
* Fixed a bug in autocomplete widget
* Added 'wpfts_is_force' parameter to WP_Query

= 1.42.124 =
* Fixed MySQL error (thanks Daan!)
* Clean up some code to remove extra Flare&Fire calls

= 1.42.122 =
* The indexer sequence and algorithm was completely rebuilt
* Pause mode was added to the indexer
* Improved indexer logging
* Added search index status to the Edit Post page

= 1.41.120 =
* Added shortcode [wpfts_widget] that lets you install search widget to any place of post/page or template

= 1.40.117 =
* Improved input parameter processing to remove dependency with is_main_query() and is_search() for repeated WP_Query calls
* Bugs fixed
* Improved compatibility with 3rd-party themes and plugins

= 1.39.112 =
* Fixed Live Search console error
* Fixed 5 minor bugs

= 1.39.108 =
* Fixed 8 bugs and issues
* Added shortcode content search support!
* Improved Smart Excerpt preparation (removed html entities)

= 1.38.106 =
* Fixed 10 big and small issues
* Added: extension port in free version
* Improved indexing speed

= 1.37.101 =
* Some fixes in the code
* Fixed forum and documentation links

= 1.36.98 =
* Word indexer was optimized for low-memory webservers
* Fixed some notices appeared for rare cases

= 1.35.96 =
* Fixed an issue with AND settings (now works again, [thanks to @clapierre](https://fulltextsearch.org/forum/topic/21/default-search-logic-and-or-broken-since-version-1-28-75/2))
* Fixed 2 other bugs
* The notice on the Smart Excerpt Settings page was fixed

= 1.34.94 =
* Translation-related fixes

= 1.33.92=
* Fixed an issue with index length on VARCHAR fields
* Confirmed compatibility with Wordpress 5.5
* Fixed language domain and code to be compatible with Wordpress Translate service

= 1.32.90 =
* Added support for x86 platforms (by x64 software emulation)
* Fixed notices when result is empty (thanks to Mihajlo!)
* Fixed DB collation issues (now WPFTS is using the same collation as Wordpress does)

= 1.31.88 =
* Fixed "expected to be a reference, value given" bug, thanks to @gregamer!

= 1.31.87 =
* Fixed found_posts / max_num_pages issue
* Fixed text typo

= 1.30.85 =
* Added new algorithm that supports sentences
* Deep search is now faster (no more afraid to use it)
* Character limit (3 chars) was removed
* MyISAM support was dropped
* Faster index rebuilding
* Fixed some UI/UX issues
* Fixed around 15 issues in the code

= 1.28.75 =
* Fixed some UI bugs
* Added German and German-formal translations (thanks to torkeller (@torkeller) !!!)
* Improved Russian translation

= 1.27.72 =
* Fixed UI second-level tabs bug
* Some new texts prepared for translation

= 1.27.70 =
* Changed UI logic: now tabbed
* Approved compatibility with Wordpress 5.4
* Fixed 3 small issues

= 1.26.67 =
* Fixed Smart Excerpts view issue
* Added more code for custom widgets
* Attachments caption and description are searchable now!

= 1.25.65 =
* Fixed design (now looks much better)
* Fixed text typos
* Fixed 4 small issues

= 1.24.62 =
* Fixed texts and typos
* Improved indexing speed
* Some code preparations for sentence-enabled search

= 1.23.58 =
* Fixed 3 issues
* Updated the plugin description

= 1.23.56 =
* Fixed notification windows dismiss function

= 1.23.54 =
* Fixed incompatibility with Gravity Forms and possible some other plugins

= 1.23.50 =
* Added modern design of the plugin backend. All forms and controls were rebuilt
* Fixed 5 bugs and issues

= 1.22.46 =
* Added alpha Live Search functionality

= 1.21.44 =
* Justified design
* Fixed 2 bugs

= 1.20.42 =
* Tested and approved compatibility with WP 5.3
* Fixed 3 secondary issues

= 1.19.40 =
* Fixed number to string conversion for some locales

= 1.18.35 =
* Added CSS style editor for Smart Excerpts block
* Added external parameters for WP_Query: "word_logic" and "wpfts_disable" (refer documentation)
* Fixed: Smart Excerpts now works well for content contains non-UTF-8 characters

= 1.17.33 =
* Fixed: The Smart Excerpts algorithm was completely rebuilt. Now working on any post and excerpt length. Thanks to Kathy

= 1.16.31 =
* Fixed: single UTF-8 quote issue made some "beautifyed strings" unsearchable. Fixed now. Thanks to Sophia.

= 1.16.29 =
* Fixed: make text search case insensitive not depends from MySQL config. Thanks to Sophia

= 1.16.27 =
* Fixed: search result items with zero relevance does not show anymore (BIG thanks to @bolus150 for the bugreport!)
* Added possibility to set up cluster_weights as a WP_Query parameter
* Added wpfts_cluster_weights filter
* Added Settings option to strip_tags before put post content to the index (useful for Gutenberg driven sites)

= 1.15.24 =
* Localization improved (new pot file, added __ in some places the code)

= 1.14.22 =
* Big update: lots of functions was moved from the Pro version to the Free WPFTS Version
* Interface bugs were fixed
* Relevance formula was completely rebuilt
* Reindex algorithm was sufficiently improved (now 5 times faster!)
* Word max length was increased to 255 characters

= 1.11.16 =
* Code optimizations
* Indexing speed increased

= 1.11.15 =
* Improved compatibility with Wordpress 5.2.2
* Fixed 3 small issues

= 1.10.14 =
* Fixed an issue with database locking with MYISAM
* Small interface fixes

= 1.10.13 =
* Fixed an issue with indexing
* Added compatibility with Wordpress 5.2

= 1.10.12 =
* Fixed 3 issues

= 1.10.11 =
* Improved compatibility with WP 5.1
* Fixed 7 issues

= 1.9.10 =
* Added Google-like Smart Excerpts

= 1.8.9 =
* Fixed 5 tiny bugs (thanks users for reports!)

= 1.8.7 =
* Added Multisite support

= 1.7.6 =
* Fixed 9 warnings and 21 notices while optimizing plugin for PHP 7.2
* Added support of PHP 7.2

= 1.7.5 =
* Added Main WP Search Tweaks settings

= 1.6.4 =
* Fixed a bug - it was a reason why plugin can't activate correctly on some hostings

= 1.6.3 =
* Added InnoDB support
* Added a switch of MySQL table type (InnoDB/MySQL)
* Fixed a bug with popup message

= 1.6.2 =
* Fixed MySQL queries: search speed sufficiently improved

= 1.6.1 =
* Added "Deeper Search" flag and functionality

= 1.6.0 =
* Added support for internal query filtering
* Added wpfts_search_terms filter
* Fixed some indexing speed issues

= 1.5.9 =
* Fixed Readme.txt
* Fixed queries to WP multisite support

= 1.5.8 =
* Compatibility with WP 4.8.1
* Indexing speed increased a bit (code was optimized)

= 1.4.6 =
* Added support for sites with specific DB table names

= 1.3.4 =
* Cosmetic changes

= 1.2.3 =
* Changed regexp which is splitting texts to words (non-english characters are now supported)
* Added `wpftp_split_to_words` filter which enables you to define your own "text splitting" algorithm

= 1.2.1 =
* Added complex query analyzer (support quotes)

= 1.1.7 =
* Added plugin icon
* Fixed description

= 1.1.6 =
* Lowered save_post hook priority to index metadata correctly

= 1.1.5 =
* Small bug fixes
* Debug logging removed

= 1.1.4 =
* Added cluster weights capability
* Plugin assigned to GPL license

= 1.0 =
* First Wordpress version

= 0.4 =
* Automatic indexing were added, over 30 bugs were fixed

= 0.1 =
* Initial edition. Basic functions added

== Upgrade Notice ==

= 1.1.4 =
* Upgrade immediately, because of some security issues found and fixed

= 1.0 =
* First version to be in Wordpress repository, just install it
