ES 2.2 Enhanced Search 2.2 - Similar Threads

Screenshot 2020-07-20 at 13.37.50.png
In the beginning, XenForo Enhanced Search (XFES) was intended to be a simple drop-in replacement for MySQL full text search, primarily aimed at large forums whose operation would potentially suffer when attempting to search very large database tables.

As a drop-in, XFES only made use of the enhanced search index and speed for the formal search system, but with version 2.2 we are starting to leverage more of the power afforded by the Elasticsearch back-end.

Similar threads​

A useful tool for surfacing content on your forum is a list of Similar or related threads, which can be displayed along with a primary thread. Visitors who have landed on that page from a search engine will often look for related material to continue their reading, and Similar threads offer a great way to provide that in an automated fashion.

One limitation of the usefulness of Similar threads is a determination of just how similar or related the results actually are. This is where XFES comes into its own, as the Elasticsearch back-end provides a specific ability to search for more like this using the current thread as a search parameter. Given a decent amount of content from which to pluck similar results, this provides an excellent list of threads in which the viewer of the current thread may be interested.

Similar threads widget​

We display our similar threads results in a widget, and by default we place it below the quick reply area on thread view pages, but as it is a widget you can choose to place it wherever you like on the page.

Screenshot 2020-07-20 at 13.37.50.png
Screenshot 2020-07-20 at 13.33.31.png

You could even choose to place multiple instances of the widget on the page, and make use of the power of the widget system to control how each instance of the widget behaves, setting parameters such as the number of thread results visible, the style of display, the source forums searched and the time period within which to search.

Screenshot 2020-07-20 at 13.52.22.png
Screenshot 2020-07-20 at 13.44.36.png

Controlling the index​

Of course, it's possible to fine-tune the way in which results are found, and we provide options to positively-weight results based on being in the same forum as the source / original thread, and based on how new the related content may be.

Screenshot 2020-07-20 at 13.54.46.png

But wait, there's more...

The extreme speed and efficiency of XFES allows us to offer another, related tool to our arsenal: similar thread suggestion at thread composition time.

Suggest while composing​

Everyone hates being told that a question they've asked has already been dealt with, or that the topic about which they have posted has already been covered.

XFES 2.2 aims to minimise the occurrence of this, by suggesting related threads that may contain content similar to that which the user is about to post, while they are composing. XFES is fast enough that sensible suggestions can be made in real-time while the user is typing the title of their new thread, which may prompt them to visit one of the suggested existing threads rather than posting a potential duplicate.

Screenshot 2020-07-22 at 11.05.41.png Screenshot 2020-07-22 at 11.38.43.png Screenshot 2020-07-22 at 11.40.09.png

The thread suggestion system can be a real game-changer for unwanted duplicate threads.

The system can be turned on and off through the control panel, along with options for how many similar threads to suggest.

Screenshot 2020-07-20 at 14.40.13.png

It's also possible to prevent the suggestion system from appearing at all on a per-forum basis. For example, we would never want to be pestered with suggestions for similar threads when composing a new release announcement, or a Have You Seen thread.

Screenshot 2020-07-20 at 14.42.39.png

In conclusion​

We think you'll agree that the addition of Similar threads functionality to XenForo Enhanced Search adds a compelling new ability to an already very powerful system.

By way of a reminder, XFES requires that your server has Elasticsearch 2.0 or newer, and can be purchased here.
Will this include the ability to list very common stop words? For example in a forum based around Logic software, we would want the word logic to be excluded?
I have never really seen a need for any of the first party add-ons but similar threads and suggestions are tempting me now. Need to give Enhanced Search a serious look after 2.2 is out.
Great news, this is a very important add-on!

Are these results cached at all, or always generated real time? For very large forums, similar thread caching will be important. Not just in a redis type cache, but longer term (i.e. 30 days or more).
Is there a field where we can omit certain phrases/words not to be included when showing results of similar threads e.g and, or, when, what, on, it,?
Please put a header on the drop down list so they know what they are seeing, for example title the list "Similar Topics" or something along that line. Also please open them in a new page/tab if clicked (or add an option to do so).
After having posted two threads I already got annoyed by the suggestions when typing the title :D

It might be a good idea to stop showing them when the title length has reached X characters as it would IMHO be unlikely that the user will stop posting in this case and thus the suggestions are just annoying (at least to me).
i was thinking, the only missing thing in xf2.2 was similars trheads! thank you

If i understand correctly we can use stop words from XFES ?
Stop words are very imortant for similars threads.

my question
can we set separetly stop words for search and stopwords for similars threads ?

it will be different stop words for best résult
Will the similar threads widget work on non-forum pages?
For example display similar threads on a XFRM or XFMG page.
That would be of immense value to have, because then content discovery becomes much easier.
The similar threads widget needs a thread record in order to find the threads that are similar to it, so no.

It will only work in widget positions where there is a thread record passed in as a "context param".

If you placed a <xf:widget> tag that calls this widget in a random page you would need to pass a context-thread="{$thread}" value into it (where {$thread} has to exist in the template).
Top Bottom