ElasticSearch Essentials

ElasticSearch Essentials [Paid] 3.18.2

No permission to buy ($30.00)
After upgrading to ElasticSearch Essentials 3.17.16, I'm getting these server errors.

Code:
[LIST]
[*]XF\Db\DeadlockException: MySQL query error [1213]: Deadlock found when trying to get lock; try restarting transaction
[*]src/XF/Db/AbstractStatement.php:225
[*]Generated by: r_o_b_e_r_t
[*]Mar 7, 2026 at 2:45 PM
[/LIST]
[HEADING=2]Stack trace[/HEADING]
            -- XFDB=noForceAllWrite
            INSERT INTO xf_thread_view
                (thread_id, total)
            VALUES
                (? , 1)
            ON DUPLICATE KEY UPDATE
                total = total + 1
        
------------

#0 src/XF/Db/Mysqli/Statement.php(207): XF\Db\AbstractStatement->getException('MySQL query err...', 1213, '40001')
#1 src/XF/Db/Mysqli/Statement.php(83): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1213, '40001')
#2 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Repository/ThreadRepository.php(185): XF\Db\AbstractAdapter->query('
            -- XFDB=noF...', 966755)
#4 src/XF/Pub/Controller/ThreadController.php(185): XF\Repository\ThreadRepository->logThreadView(Object(SV\SearchImprovements\XF\Entity\ThreadCollab))
#5 src/addons/XFMG/XF/Pub/Controller/Thread.php(12): XF\Pub\Controller\ThreadController->actionIndex(Object(XF\Mvc\ParameterBag))
#6 src/XF/Mvc/Dispatcher.php(362): XFMG\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#7 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Thread', 'Index', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Thread), NULL)
#8 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Thread), NULL)
#9 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#10 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#11 src/XF.php(814): XF\App->run()
#12 index.php(23): XF::runApp('XF\\Pub\\App')
#13 {main}
[HEADING=2]Request state[/HEADING]
array(4) {
  ["url"] => string(35) "/threads/macbook-neo.966755/page-13"
  ["referrer"] => string(57) "https://www.xxxxxx/threads/macbook-neo.966755/page-12"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}





Bildschirmfoto 2026-03-07 um 15.36.18.webp
 
What ES version are you running? I'm on Essentials v3.17.16 and ES v8.19.12 (haven't been able to go to ES v9 yet) and have no issues.

1000018730.webp
 
Last edited:
Just to help you troubleshoot, I upgraded to the latest ES - which is ES v9.3.1 - Essentials v3.17.16 and do not receive any errors.
Code:
[root@server ~]# curl -XGET 'http://localhost:9200'
{
  "name" : "***********",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "INzKa********VZ61uJdSbA",
  "version" : {
    "number" : "9.3.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "0dd66e52ba3a********e46339dbb71f0269",
    "build_date" : "2026-02-23T23:37:38.684779921Z",
    "build_snapshot" : false,
    "lucene_version" : "10.3.2",
    "minimum_wire_compatibility_version" : "8.19.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}
[root@server ~]#

Screenshot 2026-03-07 175813.webp
 
Last edited:
After upgrading to ElasticSearch Essentials 3.17.16, I'm getting these server errors.
The xf_thread_view table isn't anything todo with this add-on.

But you can remove contention on the xf_thread_view table by using my "redis backed view counters" which offloads the view counts running totals from an in-memory table to redis and changes the view totals updating to be less deadlock prone.


Why it is only happening now I'm unsure, but likely just a coincidence
 
Last edited:
In 3.17.18 PHP 8.5.8 XFES 2.3.11 ES 9.4.4
@Xon The search works great but when I click Your Content it gives this error. Thoughts?

Server error log
  • LogicException: Could not determine content viewability; please override
  • src/XF/Search/Data/AbstractData.php:267
  • Generated by: CJ
  • Aug 3, 2026 at 2:18 PM

Stack trace​

#0 src/XF/Search/Search.php(465): XF\Search\Data\AbstractData->canViewContent(Object(JeepCJ\Garage\Entity\GarageComment))
#1 [internal function]: XF\Search\Search->{closure:XF\Search\Search::getResultSetData():463}(Object(JeepCJ\Garage\Entity\GarageComment))
#2 src/XF/Mvc/Entity/AbstractCollection.php(248): array_filter(Array, Object(Closure))
#3 src/XF/Search/Search.php(463): XF\Mvc\Entity\AbstractCollection->filter(Object(Closure))
#4 src/addons/SV/ElasticSearchEssentials/XF/Search/Search.php(388): XF\Search\Search->getResultSetData('jeepcj_garage_c...', Array, true, Array)
#5 src/XF/ResultSet.php(313): SV\ElasticSearchEssentials\XF\Search\Search->getResultSetData('jeepcj_garage_c...', Array, true, Array)
#6 src/XF/ResultSet.php(294): XF\ResultSet->loadResultsData(true)
#7 src/XF/ResultSet.php(247): XF\ResultSet->limitToViewableResults()
#8 src/XF/ResultSet.php(263): XF\ResultSet->sliceResults(0, 200, true)
#9 src/XF/Search/Search.php(377): XF\ResultSet->limitResults(200, true)
#10 src/addons/SV/ElasticSearchEssentials/XF/Search/Search.php(48): XF\Search\Search->executeSearch(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), 200, Object(Closure), true)
#11 src/XF/Search/Search.php(341): SV\ElasticSearchEssentials\XF\Search\Search->executeSearch(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), NULL, Object(Closure), true)
#12 src/XF/Repository/SearchRepository.php(26): XF\Search\Search->search(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery))
#13 src/addons/SV/ElasticSearchEssentials/XF/Repository/XF22/SearchPatch.php(33): XF\Repository\SearchRepository->runSearch(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), Array, true)
#14 src/addons/SV/ElasticSearchEssentials/Repository/SearchTrait.php(42): SV\ElasticSearchEssentials\XF\Repository\XF22\SearchPatch->{closure:SV\ElasticSearchEssentials\XF\Repository\XF22\SearchPatch::runSearch():32}(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), Array, true)
#15 src/addons/SV/ElasticSearchEssentials/XF/Repository/XF22/SearchPatch.php(32): SV\ElasticSearchEssentials\XF\Repository\XF22\SearchPatch->wrapRunSearchForSvEss(Object(Closure), Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), Array, true)
#16 src/addons/SV/SearchImprovements/XF/Repository/XF22/SearchPatch.php(50): SV\ElasticSearchEssentials\XF\Repository\XF22\SearchPatch->runSearch(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), Array, true)
#17 src/addons/SV/ElasticSearchEssentials/XF/Pub/Controller/XF22/SearchPatch.php(27): SV\SearchImprovements\XF\Repository\XF22\SearchPatch->runSearch(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), Array, true)
#18 src/XF/Pub/Controller/SearchController.php(101): SV\ElasticSearchEssentials\XF\Pub\Controller\XF22\SearchPatch->runSearch(Object(SV\ElasticSearchEssentials\XF\Search\Query\KeywordQuery), Array)
#19 src/addons/SV/SearchImprovements/XF/Pub/Controller/Search.php(92): XF\Pub\Controller\SearchController->actionSearch()
#20 src/addons/SV/ElasticSearchEssentials/XF/Pub/Controller/Search.php(525): SV\SearchImprovements\XF\Pub\Controller\Search->actionSearch()
#21 src/XF/Mvc/Dispatcher.php(364): SV\ElasticSearchEssentials\XF\Pub\Controller\Search->actionSearch(Object(XF\Mvc\ParameterBag))
#22 src/XF/Mvc/Dispatcher.php(266): XF\Mvc\Dispatcher->dispatchClass('XF:Search', 'Search', Object(XF\Mvc\RouteMatch), Object(SV\SearchImprovements\XF\Pub\Controller\SearchPatchFirst), NULL)
#23 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SearchImprovements\XF\Pub\Controller\SearchPatchFirst), NULL)
#24 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#25 src/XF/App.php(2830): XF\Mvc\Dispatcher->run()
#26 src/XF.php(850): XF\App->run()
#27 index.php(23): XF::runApp('XF\\Pub\\App')
#28 {main}

Request state​

array(4) {
["url"] => string(47) "/community/search/search?c[users]=CJ&order=date"
["referrer"] => string(37) "https://jeep-cj.com/community/?_pwa=1"
["_GET"] => array(2) {
["c"] => array(1) {
["users"] => string(2) "CJ"
}
["order"] => string(4) "date"
}
["_POST"] => array(0) {
}
}
Delete
 
Hi to everyone, I was using Enhanced search and disabled because I was getting only 3 results on the mini search.
If I buy this I will se more search result like we see here?
 
Disabling XFES (aka enhanced search) really isn't recommended if you have a copy as the mysql-based search really isn't great.

As for the autocomplete search it depends on the context and how much content you have!
 
Disabling XFES (aka enhanced search) really isn't recommended if you have a copy as the mysql-based search really isn't great.

As for the autocomplete search it depends on the context and how much content you have!
The reason I got it that time was to have search suggestions
I had it installed correctly and was working perfect without any issue.
However I gave up because I was getting only 3 results on the mini search.
For example I had many resources and threads with the word seo and I was typing I was getting only 3 results.
The content isn't the issue, my site is live since 2015.

That's why I came here to ask if this addon will give me results like we see here. We type and we get bunch of results
If I buy this I will se more search result like we see here? we need this addon to get these results (if so to buy it) or this work already does the xfes and just didn't work on my site?
 
Disabling XFES (aka enhanced search) really isn't recommended if you have a copy as the mysql-based search really isn't great.

As for the autocomplete search it depends on the context and how much content you have!
Thank you very much for the fast reply btw
 
On installing XFES, you need to re-index threads as otherwise it'll only catch them as new threads are created.
 
Probably shouldn't conflict much as the google search should just be a minor UI change, but I haven't tested.
 
Would there be a way to boost tagged threads/giving them increased weights, so they will show above any non tagged threads in the search list independent of age etc?

Almost all of our most active threads (some quite old) are tagged, but often show below non tagged threads on similar topics. Been looking for a way to display the tagged first/make them easier to find.
 
Last edited:
Back
Top Bottom