XF 2.2 Search forums not in the node list

Davyc

Well-known member
I have three forums that are not included in the regular node list - in the settings I unchecked the 'Display in the node list'

1634720860980.webp

I have used the node urls to create access in a drop menu and there is no requirement or need to duplicate the entry access points.

My issue is that because these forums are not included in the node list, they cannot be searched and that is causing a problem that I would like some kind of resolution to. So, to that end, is there a means to get these included in the search parameters without showing them in the node list because, as I have pointed out, this would be a redundant course of action in duplication.

As an aside, it may be prudent to display a warning that such an action will exclude them from the search facility and/or add an option to include these forums in the search parameters.

With thanks
 
Solution
Can you check the engine type of table xf_search_index?

This should be MyISAM (this is how XenForo does create the table and it is the only supported configuration), if it is InnoDB that might explain what you are experiencing.
A search forum lists existing discussions according to certain parameters that you select when creating it.
So the threads contained in these type of forums exist elsewhere in one other forum, don't they? When you click on a discussion in a search forum you are redirected to the discussion in its original location.

The search function therefore has no interest in searching in research forums.
Well that's how I understand it.
 
The search function therefore has no interest in searching in research forums.

I'm not quite sure what you mean - these are not research forums, they are actual accessible forums with (many) threads in them, it's just that they are not displayed in the node list. What I am wanting is a means of searching these forums even though they are not in the node list. There can be many reasons why it may be desirable not to have forums showing in the node list, but still have them accessible by other means. When I go to the advanced search - those forums are not available for searching, though they do exist and are accessible by everyone, just not via the node list.

1634725929528.webp

The three forums I chose not to include in the node list are not showing in the advanced search list (see above) - they would normally appear in the node list below Suggestions, the last entry. My thought process behind my methods of gaining access to the forums is to reduce the number of clicks or taps to get to where people want to be, especially when they are using mobiles. Those three forums can be access from links on the front page and from a dropdown menu, but that should not immediately exclude them from being searched, and therein lies my issue with the search facility. A means to search forums not shown in the node list should be accessible.
 
Actually, these forums are searchable - however there is a small issue with certain titles. For example, if I search 'Deep Purple' or 'Black Sabbath' the results for those bands are returned. If I search for AC/DC (and there are albums for that band listed) there are no results returned. I've altered the minimum number of characters for search results to 2, but still AC/DC does not show up - is it because there is a forward slash in the name and those characters are ignored?
 
You thread title is confusing ;)

Search forums are a different thing than forums.

Your question is about "How to search forums that are not being shown in the node list", but @nicodak (and I initially) interpreted this as "Search forums are not being shown in the node list" - which is an entirely different question.

Out of the box it is not possible to hide forums in the node list but still show them on the search form.
Doing so would require custom code - or a bit of CSS to visually hide the nodes on forum index/categories/subforums.
 
OK a little more investigating shows the search results are inconsistent. For example if I search for

Metal Rendez-vous

I get a returned result:

1634727286469.webp

If I search for Too fast for love

1634727359820.webp

I get this:

1634727402752.webp

Yet both appear in the thread listings:

1634727442806.webp 1634727471732.webp

This makes the search facility somewhat useless if it cannot return results for threads that exist. I tried this on a number of different thread titles and some are searched and others are not - there doesn't appear to be any particular reason for this as all entries are made the same way.

Thoughts, ideas, solutions - anyone?
 
You thread title is confusing
Yeah I should have been more precise as in Searching forums that do not appear in the node list is not returning results or words to that effect. Sometimes my fingers don't express what my mind is thinking lol.

However, the post above shows that results are inconsistent with no obvious reason, so more thoughts please.

BTW. I did add one of those forums back into the node list and hid it with CSS and it disappeared from the list in the search parameters :)
 
Here's a screen capture video to show what happens: Click it to see it (it's compressed so not pin perfect clear, but you see what's happening).

2021-10-20_12-15-15.gif

There are two Dio entries next to each other - one is titled Holy Diver, the other Master of the Moon. If I search Holy Diver I get a result, if I search Master of the Moon I get nothing.
 
indeed I did not understand the meaning of your question.

Coming back to your problem have you attempted to rebuild the search index? By checking the box "Delete the index before rebuilding"?
 
Coming back to your problem have you attempted to rebuild the search index? By checking the box "Delete the index before rebuilding"?
Done that and the result is the same.

I set the minimum word length to 2 as some bands only have two letters in their name such as U2.

I'm not using Elastic Search

Are you using XFES or default MySQL FT?
If the latter: What's your setting for ft_min_word_len?
1634729485849.png
 
Please carefully read the hint on this setting:
This is the minimum length of a word that can be searched by the index. With the default search system, this should correspond with the MySQL full text minimum word length (normally 4).

Aferwards re-read my previous comment and check the setting I mentioned ;)
 
Aferwards re-read my previous comment and check the setting I mentioned

Setting for ft_min_word_len? Where would I find that? I've searched my SQL tables and it's not showing anything relating to that. BTW I'm on shared hosting so don't have access to any server settings.

I read the hint, but that should not affect anything above that number, as in my video in the post above illustrates. The search is inconsistent, showing results for some entries but not others. I also checked in my SQL tables to ensure that the titles were present and they are. I set that back to the recommended 4 and the issue remains. So something is amiss lol.
 
BTW I'm on shared hosting so don't have access to any server settings.
Then it is most likely set to 4 and you can't change it anyway.

At least you should be able to check the value by executing SHOW VARIABLES LIKE 'ft_min_word_len' in whatever DB adminstration tool (phpMyAdmin, etc.) you do have access to.

The search is inconsistent, showing results for some entries but not others.
I also checked in my SQL tables to ensure that the titles were present and they are.
The results are not inconsistent ;)

You've told XenForo that it would be able to seach for keywords with at least 2 characters, but if MySQL/MariaDB does have a limit of 4 characters it can't return proper results if one of the keywords is less than 4 characters.

This is the reason why both settings must be compatible; if they are XenForo would tell you that a search containing a keyword with less than the MySQL limit does not work properly and that the keyword was excluded.
 
Last edited:
At least you should be able to check the value by executing SHOW VARIABLES LIKE 'ft_min_word_len' in whatever DB adminstration tool (phpMyAdmin, etc.) you do have access to.
Checked and the result is:
1634736598290.webp

So I have changed it back to 4 and the result is exactly the same, so the returned results ARE inconsistent otherwise either everything searched for would show or no results for anything would be returned, especially when both settings are now the same.

1634736657079.webp

I've rebuilt the search cache and checked the Delete the index before rebuilding.

1634736741237.webp

Some titles show up, others do not. I've done this on a whole host of titles, so there must be something not working correctly. If it were not returning ANY results then I would fire off a support ticket, but because some results are returning and others are not I have thrown this into the Troubleshooting and Problems forum to see if anyone else has experienced this. If no one can put their finger on this issue in here then I will raise a support ticket to see if the devs can get to the bottom of this mysterious issue.
 
I have just searched the titles on the forum without issue.

Note that when using MySQL search, stop words are involved.

'Too and 'for' are stop words so cannot be searched - instead this is the result:

1634737870208.png


Therefore searching 'too fast for love' will yield no results, whereas 'fast love' will.

1634737716862.png

Likewise for 'master (of the) moon'.

1634737772660.png
 
I have just searched the titles on the forum without issue.

Note that when using MySQL search, stop words are involved.

'Too and 'for' are stop words so cannot be searched - instead this is the result:

Which is completely useless as people will be searching by what they know. For example if I were visiting the forum and I wanted to find out if Master of the Moon was on the site I would type that into the search box only find out that it's not there (according to the search). There is no way someone will just type Master, or Master Moon.

I've just done this with a few titles and they do show up, now, but my point of contention remains that people visiting will not break the title down; WE know that, but how are they supposed to know? The search should ignore words less than 4 characters strip them out automatically so that the remaining valid words stay and results can be shown. We can't expect people who don't know they need to narrow their parameters as you have shown, and I have validated with my own searches, they will just assume what they are looking for is not there and move on - potential member lost. Perhaps this is something that can be added into a future update so that ordinary people are not frustrated by a seriously limited search feature.
 
Top Bottom