joomla / joomla-cms

Home of the Joomla! Content Management System
https://www.joomla.org
GNU General Public License v2.0
4.77k stars 3.65k forks source link

Smart Search filter should get criteria from tables users/categories/tags etc., NOT from finder_xy! #36857

Closed sternenvogel closed 2 years ago

sternenvogel commented 2 years ago

Problem identified

When you set up a search filter with some criteria like Author / Categories / Tags etc. and then clear and reindex content, all your filter options are gone. Clearing index is needed to get rid of deleted articles - but this is killing the filter criteria too. :-(

Proposed solution

Smart Search filter configuration should use search criteria (Search by Author/Category/Language/Tag/Type) from tables #__users/#__categories/#__languages/#__tags etc, not from #__finder_xyz!

Open questions

richard67 commented 2 years ago

@Hackwar I think this is something for you.

Hackwar commented 2 years ago

When using the "proper" method to delete articles, they are already removed from the index. It is not necessary to delete and reindex just for that.

Smart Search is building an index and needs to query that index. Taxonomies are part of that index. If you want to filter by data from those other tables, it would quickly run into the same issues we have for com_search, where you can DoS a site easily if they have just enough search plugins installed and enabled. There is no "workaround". This is intended behavior.

If you have a habit of deleting articles without triggering the plugin event for that as well, then maybe this here is something for you: #36751 That still needs tests and could be part of Joomla 4.2

richard67 commented 2 years ago

@Hackwar So we should close this issue here as expected behaviour, right?

Hackwar commented 2 years ago

yes

richard67 commented 2 years ago

Closing as expected behavior.

sternenvogel commented 2 years ago

@Hackwar What's 'the "proper" method to delete articles'? I use to trash articles in the article list (/administrator/index.php?option=com_content&view=articles), then reindex. But the trashed article remains in the search index. Same after then emptying trash and reindexing again. Even after clearing all caches and reindexing again it was still not renoved from search index.

Hackwar commented 2 years ago

The moment you trash articles, they shouldn't show up in the frontend anymore. They stay in the index as unpublished content. Only when you clear the trash, they will be removed from the index. You never need to click the index button in the backend. If they aren't unpublished and/or removed, then I would assume that the content finder plugin is not active and you are indexing with something else.

sternenvogel commented 2 years ago

That was the clue: I assumed that all plugins needed for smart search to work properly are enabled by default. But "Content - Smart Search" was not enabled by default. With this, everything is doing fine. Thanks for your valuable hint and sorry for bothering you :)

Hackwar commented 2 years ago

You should be getting a message in the smart Search component that that plugin is not enabled.