1

I use the Joomla smart search on my site (com_finder). I have an article with the term not connected in it.

When I search for the term not connected I get 0 results.

When I search for the word connected alone the article does show up.

When I search the term "not connected" (enclosed with quotation marks) the article shows up on the search.

As I understand, quotation marks should represent exact match and show fewer results than general match (without quotation marks) and not the other way around.

How come the article does not show up without the quotation mark?

8
  • Welcome to JSE. Good question -- you did a great job of narrowing and expressing the issue so that volunteers can replicate your issue. Please take the tour while you wait for support. Commented Jan 20, 2020 at 20:33
  • 1
    @mickmackusa Thanks. Just to clarify, the square brackets in the question were used to seperate the term being searched. In reality I am searching the term without the square brackets.
    – Dor Levi
    Commented Jan 21, 2020 at 6:25
  • Hmmm. I'm not successfully able to duplicate that (when I searched for looking for in my dev site I got articles with the phrase as well as just with looking). Just as a double-check, try turning on the"query explanation" option (on the advanced tab of the search menu item) to be sure the system is seeing the request the way you think it should (it should be, but it never hurts to check). It should say something like "Assuming not is required and connected is required ..."
    – Arlen
    Commented Jan 21, 2020 at 14:52
  • Forgot to add, the reason I thought of the check is that the word "not" also carries a boolean meaning, to exclude the search term. Which would mean the system is seeing that as a null query that should exclude any items with the word connected, and null queries are the empty set.
    – Arlen
    Commented Jan 21, 2020 at 14:55
  • @arlen I was not able to see the query explanation for some reason, But now that I double check that issue, considering the fact that "not" carries a boolean meaning, it seems that this is in fact the issue because when I search a different word combination and it does work. So this raise the question of how can this be fixed?
    – Dor Levi
    Commented Jan 23, 2020 at 14:34

1 Answer 1

1

Did a little more looking when I had time and discovered a bug in com_finder that complicates this issue, but here's how it's (IMO) supposed to work as well as a workaround for the bug.

The word "not" carries a boolean meaning, so when you enter the string

not connected

it takes on the meaning I suggested in one of my comments, that of 'every response to an empty query except those containing the word "connected."' Since the result of an empty query is an empty set, you end up with nothing found.

To "unload" the boolean meaning, we surround it with quotes, like this:

"not" connected

While that is the theory behind it and how it's supposed to work, unfortunately, that query triggers the bug I referred to, so instead of interpreting that query as searching for the word "not" and the word "connected" it searches for the word "not" and then resurrects the boolean meaning we were supposed to be eluding and excludes all entries that have "connected" in them from the returned result set. Subtle bug, eh?

So, how do we work around this? So long as there's only one boolean term in your search, put it in quotes and make it the last term:

connected "not"

and that will get you the results you're looking for, all entries with both "not" and "connected" in them.

2
  • thanks for the input, but this will not solve the issue as the search should serve the user and I cannot control what every user will write as the search query.
    – Dor Levi
    Commented Jan 24, 2020 at 15:14
  • You can, at least control what you write on the search results page and/or the advanced search page (if you offer one) so you can at least inform the user about how to write a good search query.
    – Arlen
    Commented Jan 26, 2020 at 23:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.