Plus Minus feature in searchbox

Get help with installation and running phpBB 3.0.x here. Please do not post bug reports, feature requests, or MOD-related questions here.
Scam Warning
Forum rules
END OF SUPPORT: 1 January 2017 (announcement)
kinkazu
Registered User
Posts: 4
Joined: Tue Jun 16, 2009 10:55 am

Plus Minus feature in searchbox

Post by kinkazu » Wed Jun 17, 2009 1:16 pm

Hi all.
I would like to disable + - feature in search function as my forum will be about products and models like ex-23, rt-12 etc. So at this moment there is no chance to find topics which include rt-12 as it looks for all posts with rt and without 12, and I want to fix this. Any chance to get an helpful advice here?
Best regards

kinkazu
Registered User
Posts: 4
Joined: Tue Jun 16, 2009 10:55 am

Re: Plus Minus feature in searchbox

Post by kinkazu » Fri Jun 26, 2009 8:13 am

That is how google does it:

Terms you want to exclude (-)
Attaching a minus sign immediately before a word indicates that you do not want pages that contain this word to appear in your results. The minus sign should appear immediately before the word and should be preceded with a space. For example, in the query [ anti-virus software ], the minus sign is used as a hyphen and will not be interpreted as an exclusion symbol; whereas the query [ anti-virus -software ] will search for the words 'anti-virus' but exclude references to software. You can exclude as many words as you want by using the - sign in front of all of them, for example [ jaguar -cars -football -os ]. The - sign can be used to exclude more than just words. For example, place a hyphen before the 'site:' operator (without a space) to exclude a specific site from your search results.

kinkazu
Registered User
Posts: 4
Joined: Tue Jun 16, 2009 10:55 am

Re: Plus Minus feature in searchbox

Post by kinkazu » Wed Jul 08, 2009 8:58 am

I am trying and trying and I can't get rid off that - feature. If it works at least as Google one it would be great. - is treated as minus only when it is a first character of the new word in search box.

kinkazu
Registered User
Posts: 4
Joined: Tue Jun 16, 2009 10:55 am

Re: Plus Minus feature in searchbox

Post by kinkazu » Tue Jul 21, 2009 9:11 am

I found a cure. It is not exactly what I need, but it will do the job till I get a better solution.
I've put a simple function in overall_header.html

Code: Select all

function replace()
{
  document.getElementById('search').keywords.value = document.getElementById('search').keywords.value.replace('-', ' ');
}
that changes all - to blank spaces just before form is sumbitted.

in overall_header.html and and search_body.html there is an onlick action on submit buttons to call repleace() function.

Code: Select all

<input class="button2" value="{L_SEARCH}" type="submit" onclick="replace()"/>


I will still seek for a better solution which simply finds all text-text words in my forum.

User avatar
MichaelTunnell
Registered User
Posts: 211
Joined: Fri Apr 29, 2005 9:46 pm
Location: don't rush me
Name: Michael Tunnell
Contact:

Re: Plus Minus feature in searchbox

Post by MichaelTunnell » Tue Jul 21, 2009 9:31 am

It is possible to disable it however trying to make it work on the first word and not anywhere else is kind of futile considering no one searches like that.

Anyway you will need to edit a file in order to apply this modification.


OPEN - root/search.php

FIND

Code: Select all

$keywords		= utf8_normalize_nfc(request_var('keywords', '', true));
REPLACE WITH

Code: Select all

$keywords		= "\"".utf8_normalize_nfc(request_var('keywords', '', true))."\"";
I have not tested this but this will add quotes to every search such as "rt-12" making it look for rt-12 as a full word rather than rt(minus)12

MaFeSa
Registered User
Posts: 174
Joined: Wed Feb 11, 2009 7:48 am

Re: Plus Minus feature in searchbox

Post by MaFeSa » Sat Dec 05, 2009 5:40 pm

The only solution that seems to work in my forum with phpBB 3.0.6 is kinkazu method !

If i search:
"Test-1234" -> No results
"Test 1234" -> OK !!

I will try ... :roll:
Last edited by MaFeSa on Sat Dec 05, 2009 6:51 pm, edited 1 time in total.

MaFeSa
Registered User
Posts: 174
Joined: Wed Feb 11, 2009 7:48 am

Re: Plus Minus feature in searchbox

Post by MaFeSa » Sat Dec 05, 2009 6:50 pm

Nothing ... I'm going crazy !!

The kinkazu mod does not work on 3.0.6 and returns always Test-1234

MaFeSa
Registered User
Posts: 174
Joined: Wed Feb 11, 2009 7:48 am

Re: Plus Minus feature in searchbox

Post by MaFeSa » Sat Mar 13, 2010 9:36 pm

After four months of trying I realize that with phpBB is IMPOSSIBLE to find post with subject that contain words with character - (minus) For example Test-123-OK

:cry:

User avatar
triadruid
Registered User
Posts: 73
Joined: Thu Jul 16, 2009 9:58 pm

Re: Plus Minus feature in searchbox

Post by triadruid » Wed Mar 17, 2010 4:37 am

That's true, but only if you're using the full native search. mysql search is slightly more 'logical', but isn't enabled in all installations.

MaFeSa
Registered User
Posts: 174
Joined: Wed Feb 11, 2009 7:48 am

Re: Plus Minus feature in searchbox

Post by MaFeSa » Wed Mar 17, 2010 6:08 am

triadruid wrote:That's true, but only if you're using the full native search. mysql search is slightly more 'logical', but isn't enabled in all installations.
No, it is NOT possible also with mysql search !

User avatar
triadruid
Registered User
Posts: 73
Joined: Thu Jul 16, 2009 9:58 pm

Re: Plus Minus feature in searchbox

Post by triadruid » Wed Mar 17, 2010 6:24 am

Apologies, I didn't note the "subject-line only" caveat in your post. That sounds like a bug, because searching hyphenated text in the post body seems to work fine.

MaFeSa
Registered User
Posts: 174
Joined: Wed Feb 11, 2009 7:48 am

Re: Plus Minus feature in searchbox

Post by MaFeSa » Wed Mar 17, 2010 7:44 am

Yes, probably a is bug.
I'm reporting from version 3.0.4 but nobody does anything.
In the meantime I switched to SMF.
triadruid wrote:Apologies, I didn't note the "subject-line only" caveat in your post.
Yes, you're right.

MaFeSa
Registered User
Posts: 174
Joined: Wed Feb 11, 2009 7:48 am

Re: Plus Minus feature in searchbox

Post by MaFeSa » Sat Jul 24, 2010 10:16 am

Hi ;)
Just for information ...
This problem is still present on phpbb 3.0.7 PL1 ?

Many thanks.

User avatar
AmigoJack
Registered User
Posts: 5656
Joined: Tue Jun 15, 2010 11:33 am
Location: グリーン ヒル ゾーン
Contact:

Re: Plus Minus feature in searchbox

Post by AmigoJack » Sat Jul 24, 2010 1:04 pm

(This only applies to using MySQL fulltext search)

phpBB3.0.7-PL1 does interpret every minus as an operator, no matter if words are in quotes. This way it is not possible to get the right results when searching "Anne-Sophie", because phpBB3 always turns Anne into an inclusive and Sophie into an exclusive. However, if you have MySQL version 5 or later chances are high you can get your expected search results by saying "Anne.Sophie" instead (also with quotation marks, of course). Why? Because in a literal search every non-word character is treated the same - hence for MySQL there is no difference between "Anne-Sophie" and "Anne.Sophie" and even "Anne;Sophie". phpBB3 overinterprets on + and - itself to always assume boolean operators, which ultimately modifies your search query before it reaches MySQL. But characters like . or ; or = are not affected by phpBB3. Two Exceptions: ' and _ are considered as word-characters, so don't use them.

So the workaround without modifying any file is: turn a search of Anne-Sophie into "Anne.Sophie" (use dot instead of hyphen/minus character and enclose search in quotations marks).
The worst thing about censorship is ███████████
Affin wrote:
Tue Nov 20, 2018 9:51 am
The problem is probably not my English but you do not want to understand correctly.
...
We will not come anybody anyway, nevertheless, it's best to shit this.

e.Rock
Registered User
Posts: 1
Joined: Thu Sep 08, 2011 4:31 pm

Re: Plus Minus feature in searchbox

Post by e.Rock » Thu Sep 08, 2011 4:46 pm

This will negate the inclusion/exclusion functions of the search, but my band-aid solution was to modify root/search.php to include this line (sometime after $keywords is assigned):

Code: Select all

$keywords = str_replace('-', ' ', $keywords); 
This effectively converts the "temp-table" search string to "temp table".

With some more time, this could be improved to only work on "string-string" instead of "string -string" or "-string", but our needs lean much more towards recognizing hyphens in the string than being able to exclude a string from the search.

If anyone is better at regexps than me, please feel free to contribute a "better" solution.

Locked

Return to “[3.0.x] Support Forum”