ElasticSearch Essentials

ElasticSearch Essentials [Paid] 3.15.12

No permission to buy ($30.00)
Been using this for a while, but never actually looked through all the options :s

Are there any recommendations for:

Weight by contents reactions
Weight by contents views
Weight by reply count (threads)

?

(I also assume a value of 1 doesn't affect the weighting)
 
These are advanced settings for tweaking how 'relevancy' boosts things and absolutely require tinkering and iteration for what works better.

(I also assume a value of 1 doesn't affect the weighting)
This depends on the weighting mode, as content weighting is fairly complex.
 
Here's an interesting feature that doesn't work on any of my forums, but I see it working on yours:

1654097049693.png

"Did you mean" suggestions on search terms. I even see it on the overview, Suggestions/"Did You Mean" Functionality of this resource, but I can't find anywhere to enable this feature.

We're using Elasticsearch 6.7.2
 
Last edited:
Here's an interesting feature that doesn't work on any of my forums, but I see it working on yours:

View attachment 269042

"Did you mean" suggestions on search terms. I even see it on the overview, Suggestions/"Did You Mean" Functionality of this resource, but I can't find anywhere to enable this feature.

We're using Elasticsearch 6.7.2

Should be the third option from the top:

  • Enable suggestions only for the first page of search results
If enabled, this will display a suggested search on page one of a search where there's a more popular term.

At least I can reproduce it with enabling and disabling it.
 
Have you checked:

admin.php?enhanced-search/

enable stemming for language

and maybe:

  • Replace Enhanced Search 2.2's suggest threads implementation
If checked, suggest threads implementation will be replaced by Elastic Search Essentials add-on implementation.
 
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
🤷‍♂️

I feel like I've played with all the settings and no go. I'm not sure where "log search DSL" are actually logged or I'd check that too. doesn't seem to be in /var/log/elasticsearch/
 
Hm... Sorry that I can't help any further.

It just seems strange that is shows 0 searches and 0 index-updates at the top.
 
Last edited:
Here's an interesting feature that doesn't work on any of my forums, but I see it working on yours:

View attachment 269042

"Did you mean" suggestions on search terms. I even see it on the overview, Suggestions/"Did You Mean" Functionality of this resource, but I can't find anywhere to enable this feature.

We're using Elasticsearch 6.7.2
This feature has 3 toggles controlling this feature:
  • Enable suggestions only for the first page of search results
  • Validate Suggestions
  • Redirect to top validated suggestion
(All of these are default enabled).

But it implicitly depends on these xenforo enhanced search config:
  • Stop words
  • Word stemming
  • Enable accent removal and character simplification
You want to enable all of these, which are not the default!

There is an additional hidden dependency:
  • Number of shards vs document count.
The more shards, the more documents you require for "relevancy" queries to work as expected, and the defaults before Elasticsearch 7.x aren't actually helpful for this.

To inspect if your setup is configured sanely for a single server run this curl command;
Code:
curl -XGET http://localhost:9200/_cat/shards
This will output something like this:
Code:
sufficientv_test         0 p STARTED 2069875     1gb 127.0.0.1 bJ8CJKZ

If you have more than a single entry with a 'p', run this:
Code:
curl -XPUT 'http://localhost:9200/_template/xenforo' -H 'Content-Type: application/json' -d'{
  "template": "*",
  "settings": {
    "number_of_shards": "1",
    "number_of_replicas": "0"
  }
}'

You will then need to re-index. This will use less resources, perform better, and give better relevancy search results
 
I've updated ESS to the latest version yesterday and suddenly /search/member?user_id=XXX&content=thread doesn't work anymore. I've tried to rebuild the index for threads but it says "no results found" for every member. Do you know how this could be @Xon?
 
I've updated ESS to the latest version yesterday and suddenly /search/member?user_id=XXX&content=thread doesn't work anymore. I've tried to rebuild the index for threads but it says "no results found" for every member. Do you know how this could be @Xon?
What version of ElasticSearch?

Can you try using the "purge index" button, and then rebuild from scratch?
 
Does this add-on, particularly the word correction/suggestion, work find for multibyte languages?

Is there a demo site for this add-on?
 
After upgrade to XenForo 2.2.10 seeing in Server error log every couple of hours:
Code:
TypeError: Argument 1 passed to XF\Search\Search::getResultSet() must be of the type array, null given, called in /home/forum/src/XF/Pub/Controller/Search.php on line 156 src/XF/Search/Search.php:253

Stack trace
#0 src/XF/Pub/Controller/Search.php(156): XF\Search\Search->getResultSet(NULL)
#1 src/addons/SV/ElasticSearchEssentials/XF/Pub/Controller/Search.php(454): XF\Pub\Controller\Search->actionResults(Object(XF\Mvc\ParameterBag))
#2 src/XF/Mvc/Dispatcher.php(352): SV\ElasticSearchEssentials\XF\Pub\Controller\Search->actionResults(Object(XF\Mvc\ParameterBag))
#3 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF\\Pub\\Controll...', 'Results', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Search), Object(XF\Mvc\Reply\Reroute))
#4 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Search), Object(XF\Mvc\Reply\Reroute))
#5 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#6 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#7 src/XF.php(524): XF\App->run()
#8 index.php(20): XF::runApp('XF\\Pub\\App')
#9 {main}

Request state
array(4) {
  ["url"] => string(14) "/search/503324"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["/search/503324"] => string(0) ""
  }
  ["_POST"] => array(0) {
  }
}
Code:
ErrorException: [E_NOTICE] Trying to get property 'search_results' of non-object src/XF/Pub/Controller/Search.php:156

Stack trace
#0 src/XF/Pub/Controller/Search.php(156): XF::handlePhpError(8, '[E_NOTICE] Tryi...', '/home/forum/...', 156, Array)
#1 src/addons/SV/ElasticSearchEssentials/XF/Pub/Controller/Search.php(454): XF\Pub\Controller\Search->actionResults(Object(XF\Mvc\ParameterBag))
#2 src/XF/Mvc/Dispatcher.php(352): SV\ElasticSearchEssentials\XF\Pub\Controller\Search->actionResults(Object(XF\Mvc\ParameterBag))
#3 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF\\Pub\\Controll...', 'Results', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Search), Object(XF\Mvc\Reply\Reroute))
#4 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Search), Object(XF\Mvc\Reply\Reroute))
#5 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#6 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#7 src/XF.php(524): XF\App->run()
#8 index.php(20): XF::runApp('XF\\Pub\\App')
#9 {main}

Request state
array(4) {
  ["url"] => string(14) "/search/503324"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["/search/503324"] => string(0) ""
  }
  ["_POST"] => array(0) {
  }
}
Code:
ErrorException: [E_NOTICE] Trying to get property 'result_count' of non-object src/XF/Pub/Controller/Search.php:153

Stack trace
#0 src/XF/Pub/Controller/Search.php(153): XF::handlePhpError(8, '[E_NOTICE] Tryi...', '/home/forum/...', 153, Array)
#1 src/addons/SV/ElasticSearchEssentials/XF/Pub/Controller/Search.php(454): XF\Pub\Controller\Search->actionResults(Object(XF\Mvc\ParameterBag))
#2 src/XF/Mvc/Dispatcher.php(352): SV\ElasticSearchEssentials\XF\Pub\Controller\Search->actionResults(Object(XF\Mvc\ParameterBag))
#3 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF\\Pub\\Controll...', 'Results', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Search), Object(XF\Mvc\Reply\Reroute))
#4 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Search), Object(XF\Mvc\Reply\Reroute))
#5 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#6 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#7 src/XF.php(524): XF\App->run()
#8 index.php(20): XF::runApp('XF\\Pub\\App')
#9 {main}

Request state
array(4) {
  ["url"] => string(14) "/search/503324"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["/search/503324"] => string(0) ""
  }
  ["_POST"] => array(0) {
  }
}
Not sure is this related to the latest XenForo or this add-on.
 
Top Bottom