You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by ivan <iv...@presstoday.com> on 2018/02/12 11:54:12 UTC

Search for a word NOT followed by another on a Solr query

What i'm trying to do is to only get results for "Leonardo" when is not
followed by "da vinci".
If i have "Leonardo da vinci" in my result is fine as long as i have another
"Leonardo" without "da vinci".

Examples:
"Leonardo foo bar"  OK
"Leonardo da vinci foo bar" KO
"Leonardo foo bar Leonardo da vinci"  OK

I can't seem to find any way to do this using solr queries, because if i do
something like -"Leonardo da vinci" i lose all results where i have both
"Leonardo" and "Leonardo da vinci". I tried using various combinations of
boolean logic but can't get it to work.

Any help?
Thanks



--
Sent from: http://lucene.472066.n3.nabble.com/Solr-User-f472068.html

Re: Search for a word NOT followed by another on a Solr query

Posted by Emir Arnautović <em...@sematext.com>.
Hi Ivan,
You might be able to use complexphrase query parser to get what you need, you can test something like this:

{!complexphrase df=my_field}”Leonardo -(da Vinci)”

HTH,
Emir
--
Monitoring - Log Management - Alerting - Anomaly Detection
Solr & Elasticsearch Consulting Support Training - http://sematext.com/



> On 12 Feb 2018, at 14:29, ivan <iv...@presstoday.com> wrote:
> 
> Markus Jelsma-2 wrote
>> You can abuse phrase query for that, q=leonardo AND -"leonardo da vinci"
>> (asuming you have a proper default field set).
>> 
>> Markus
> 
> This way i'm losing results where i have both "Leonardo" and "Leonardo da
> vinci in the same field, see example number 3 "Leonardo foo bar Leonardo da
> vinci".
> I want this case to match and with your query i'm not getting it.
> 
> 
> 
> --
> Sent from: http://lucene.472066.n3.nabble.com/Solr-User-f472068.html


RE: Search for a word NOT followed by another on a Solr query

Posted by ivan <iv...@presstoday.com>.
Markus Jelsma-2 wrote
> You can abuse phrase query for that, q=leonardo AND -"leonardo da vinci"
> (asuming you have a proper default field set).
> 
> Markus

This way i'm losing results where i have both "Leonardo" and "Leonardo da
vinci in the same field, see example number 3 "Leonardo foo bar Leonardo da
vinci".
I want this case to match and with your query i'm not getting it.



--
Sent from: http://lucene.472066.n3.nabble.com/Solr-User-f472068.html