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 Sandeep Mestry <sa...@gmail.com> on 2013/05/20 12:14:39 UTC

Highlight only when all keywords match

Dear All,

I have a requirement to highlight a field only when all keywords entered
match. This also needs to support phrase, operator or wildcard queries.
I'm using Solr 4.0 with edismax because the search needs to be carried out
on multiple fields.
I know with highlighting feature I can configure a field to indicate a
match, however I do not find a setting to highlight only if all keywords
match. That makes me think is that the right approach to take? Can you
please guide me in right direction?

The edsimax config looks like below:

<requestHandler name="assdismax" class="solr.SearchHandler">
<lst name="defaults">
<str name="defType">edismax</str>
<str name="echoParams">explicit</str>
<float name="tie">0.01</float>
<str name="qf">title^10 description^5 annotations^3 notes^2 categories</str>
<str name="pf">title</str>
<int name="ps">0</int>
<str name="q.alt">*:*</str>
<str name="fl">*,score</str>
<str name="mm">100%</str>
<str name="q.op">AND</str>
<str name="sort">score desc</str>
<str name="facet">true</str>
<str name="facet.limit">-1</str>
<str name="facet.mincount">1</str>
<str name="facet.field">uniq_subtype_id</str>
<str name="facet.field">component_type</str>
<str name="facet.field">genre_type</str>
</lst>
<lst name="appends">
<str name="fq">collection:assets</str>
</lst>
</requestHandler>

If I search for 'countryside number 10' as the keyword then highlight only
if the 'annotations' contain all these entered search terms. Any document
containing just one or two terms is not a match.

Thanks,
Sandeep
(p.s: I haven't enabled the highlighting feature yet on this config and
will be doing so only if that will fulfil the requirement I have mentioned
above.)

Re: Highlight only when all keywords match

Posted by Upayavira <uv...@odoko.co.uk>.
I can't give you much advice on the topic. I have reviewed the
HighlightComponent and found it complex and hard to follow, so expect it
to be challenging.

Upayavira

On Mon, May 20, 2013, at 01:28 PM, Sandeep Mestry wrote:
> Thanks Upayavira for that valuable suggestion.
> 
> I believe overriding highlight component should be the way forward.
> Could you tell me if there is any existing example or which methods I
> should particularly override?
> 
> Thanks,
> Sandeep
> 
> 
> On 20 May 2013 12:47, Upayavira <uv...@odoko.co.uk> wrote:
> 
> > If you are saying that you want to change highlighting behaviour, not
> > query behaviour, then I suspect you are going to have to interact with
> > the java HighlightComponent. If you can work out how to update that
> > component to behave as you wish, you could either subclass it, or create
> > your own implementation that you can include in your Solr setup. Or, if
> > you make it generic enough, offer it back as a contribution that can be
> > included in future Solr releases.
> >
> > Upayavira
> >
> > On Mon, May 20, 2013, at 12:14 PM, Sandeep Mestry wrote:
> > > I doubt if that will be the correct approach as it will be hard to
> > > generate
> > > the query grammar considering we have support for phrase, operator,
> > > wildcard and group queries.
> > > That's why I have kept it simple and only passing the query text with
> > > minimal parsing (escaping lucene special characters) to configured
> > > edismax.
> > > The number of fields I have mentioned above are a lot lesser than the
> > > actual number of fields - around 50 in number :-). So forming such a long
> > > query will both be time and resource consuming. Further, it's not going
> > > to
> > > fulfill my requirement anyway because I do not want to change my search
> > > results, the requirement is only to provide a highlight if a field is
> > > matched for all the query terms.
> > >
> > > Thanks,
> > > Sandeep
> > >
> > >
> > > On 20 May 2013 12:02, Jaideep Dhok <ja...@inmobi.com> wrote:
> > >
> > > > If you know all fields that need to be queried, you can rewrite it as -
> > > > (assuming, f1, f2 are the fields that you have to search)
> > > > (f1:kw1 AND f1:kw2 ... f1:kwn) OR (f2:kw1 AND f2:kw2 ... f2:kwn)
> > > >
> > > > -
> > > > Jaideep
> > > >
> > > >
> > > > On Mon, May 20, 2013 at 4:22 PM, Sandeep Mestry <sa...@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Jaideep,
> > > > >
> > > > > The edismax config I have posted mentioned that the default operator
> > is
> > > > > AND. I am sorry if I was not clear in my previous mail, what I need
> > > > really
> > > > > is highlight a field when all search query terms present. The current
> > > > > highlighter works for *any* of the terms match and not for *all*
> > terms
> > > > > match.
> > > > >
> > > > > Thanks,
> > > > > Sandeep
> > > > >
> > > > >
> > > > > On 20 May 2013 11:40, Jaideep Dhok <ja...@inmobi.com> wrote:
> > > > >
> > > > > > Sandeep,
> > > > > > If you AND all keywords, that should be OK?
> > > > > >
> > > > > > Thanks
> > > > > > Jaideep
> > > > > >
> > > > > >
> > > > > > On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <
> > sanmestry@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Dear All,
> > > > > > >
> > > > > > > I have a requirement to highlight a field only when all keywords
> > > > > entered
> > > > > > > match. This also needs to support phrase, operator or wildcard
> > > > queries.
> > > > > > > I'm using Solr 4.0 with edismax because the search needs to be
> > > > carried
> > > > > > out
> > > > > > > on multiple fields.
> > > > > > > I know with highlighting feature I can configure a field to
> > indicate
> > > > a
> > > > > > > match, however I do not find a setting to highlight only if all
> > > > > keywords
> > > > > > > match. That makes me think is that the right approach to take?
> > Can
> > > > you
> > > > > > > please guide me in right direction?
> > > > > > >
> > > > > > > The edsimax config looks like below:
> > > > > > >
> > > > > > > <requestHandler name="assdismax" class="solr.SearchHandler">
> > > > > > > <lst name="defaults">
> > > > > > > <str name="defType">edismax</str>
> > > > > > > <str name="echoParams">explicit</str>
> > > > > > > <float name="tie">0.01</float>
> > > > > > > <str name="qf">title^10 description^5 annotations^3 notes^2
> > > > > > > categories</str>
> > > > > > > <str name="pf">title</str>
> > > > > > > <int name="ps">0</int>
> > > > > > > <str name="q.alt">*:*</str>
> > > > > > > <str name="fl">*,score</str>
> > > > > > > <str name="mm">100%</str>
> > > > > > > <str name="q.op">AND</str>
> > > > > > > <str name="sort">score desc</str>
> > > > > > > <str name="facet">true</str>
> > > > > > > <str name="facet.limit">-1</str>
> > > > > > > <str name="facet.mincount">1</str>
> > > > > > > <str name="facet.field">uniq_subtype_id</str>
> > > > > > > <str name="facet.field">component_type</str>
> > > > > > > <str name="facet.field">genre_type</str>
> > > > > > > </lst>
> > > > > > > <lst name="appends">
> > > > > > > <str name="fq">collection:assets</str>
> > > > > > > </lst>
> > > > > > > </requestHandler>
> > > > > > >
> > > > > > > If I search for 'countryside number 10' as the keyword then
> > highlight
> > > > > > only
> > > > > > > if the 'annotations' contain all these entered search terms. Any
> > > > > document
> > > > > > > containing just one or two terms is not a match.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Sandeep
> > > > > > > (p.s: I haven't enabled the highlighting feature yet on this
> > config
> > > > and
> > > > > > > will be doing so only if that will fulfil the requirement I have
> > > > > > mentioned
> > > > > > > above.)
> > > > > > >
> > > > > >
> > > > > > --
> > > > > > _____________________________________________________________
> > > > > > The information contained in this communication is intended solely
> > for
> > > > > the
> > > > > > use of the individual or entity to whom it is addressed and others
> > > > > > authorized to receive it. It may contain confidential or legally
> > > > > privileged
> > > > > > information. If you are not the intended recipient you are hereby
> > > > > notified
> > > > > > that any disclosure, copying, distribution or taking any action in
> > > > > reliance
> > > > > > on the contents of this information is strictly prohibited and may
> > be
> > > > > > unlawful. If you have received this communication in error, please
> > > > notify
> > > > > > us immediately by responding to this email and then delete it from
> > your
> > > > > > system. The firm is neither liable for the proper and complete
> > > > > transmission
> > > > > > of the information contained in this communication nor for any
> > delay in
> > > > > its
> > > > > > receipt.
> > > > > >
> > > > >
> > > >
> > > > --
> > > > _____________________________________________________________
> > > > The information contained in this communication is intended solely for
> > the
> > > > use of the individual or entity to whom it is addressed and others
> > > > authorized to receive it. It may contain confidential or legally
> > privileged
> > > > information. If you are not the intended recipient you are hereby
> > notified
> > > > that any disclosure, copying, distribution or taking any action in
> > reliance
> > > > on the contents of this information is strictly prohibited and may be
> > > > unlawful. If you have received this communication in error, please
> > notify
> > > > us immediately by responding to this email and then delete it from your
> > > > system. The firm is neither liable for the proper and complete
> > transmission
> > > > of the information contained in this communication nor for any delay
> > in its
> > > > receipt.
> > > >
> >

Re: Highlight only when all keywords match

Posted by Sandeep Mestry <sa...@gmail.com>.
Thanks Upayavira for that valuable suggestion.

I believe overriding highlight component should be the way forward.
Could you tell me if there is any existing example or which methods I
should particularly override?

Thanks,
Sandeep


On 20 May 2013 12:47, Upayavira <uv...@odoko.co.uk> wrote:

> If you are saying that you want to change highlighting behaviour, not
> query behaviour, then I suspect you are going to have to interact with
> the java HighlightComponent. If you can work out how to update that
> component to behave as you wish, you could either subclass it, or create
> your own implementation that you can include in your Solr setup. Or, if
> you make it generic enough, offer it back as a contribution that can be
> included in future Solr releases.
>
> Upayavira
>
> On Mon, May 20, 2013, at 12:14 PM, Sandeep Mestry wrote:
> > I doubt if that will be the correct approach as it will be hard to
> > generate
> > the query grammar considering we have support for phrase, operator,
> > wildcard and group queries.
> > That's why I have kept it simple and only passing the query text with
> > minimal parsing (escaping lucene special characters) to configured
> > edismax.
> > The number of fields I have mentioned above are a lot lesser than the
> > actual number of fields - around 50 in number :-). So forming such a long
> > query will both be time and resource consuming. Further, it's not going
> > to
> > fulfill my requirement anyway because I do not want to change my search
> > results, the requirement is only to provide a highlight if a field is
> > matched for all the query terms.
> >
> > Thanks,
> > Sandeep
> >
> >
> > On 20 May 2013 12:02, Jaideep Dhok <ja...@inmobi.com> wrote:
> >
> > > If you know all fields that need to be queried, you can rewrite it as -
> > > (assuming, f1, f2 are the fields that you have to search)
> > > (f1:kw1 AND f1:kw2 ... f1:kwn) OR (f2:kw1 AND f2:kw2 ... f2:kwn)
> > >
> > > -
> > > Jaideep
> > >
> > >
> > > On Mon, May 20, 2013 at 4:22 PM, Sandeep Mestry <sa...@gmail.com>
> > > wrote:
> > >
> > > > Hi Jaideep,
> > > >
> > > > The edismax config I have posted mentioned that the default operator
> is
> > > > AND. I am sorry if I was not clear in my previous mail, what I need
> > > really
> > > > is highlight a field when all search query terms present. The current
> > > > highlighter works for *any* of the terms match and not for *all*
> terms
> > > > match.
> > > >
> > > > Thanks,
> > > > Sandeep
> > > >
> > > >
> > > > On 20 May 2013 11:40, Jaideep Dhok <ja...@inmobi.com> wrote:
> > > >
> > > > > Sandeep,
> > > > > If you AND all keywords, that should be OK?
> > > > >
> > > > > Thanks
> > > > > Jaideep
> > > > >
> > > > >
> > > > > On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <
> sanmestry@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Dear All,
> > > > > >
> > > > > > I have a requirement to highlight a field only when all keywords
> > > > entered
> > > > > > match. This also needs to support phrase, operator or wildcard
> > > queries.
> > > > > > I'm using Solr 4.0 with edismax because the search needs to be
> > > carried
> > > > > out
> > > > > > on multiple fields.
> > > > > > I know with highlighting feature I can configure a field to
> indicate
> > > a
> > > > > > match, however I do not find a setting to highlight only if all
> > > > keywords
> > > > > > match. That makes me think is that the right approach to take?
> Can
> > > you
> > > > > > please guide me in right direction?
> > > > > >
> > > > > > The edsimax config looks like below:
> > > > > >
> > > > > > <requestHandler name="assdismax" class="solr.SearchHandler">
> > > > > > <lst name="defaults">
> > > > > > <str name="defType">edismax</str>
> > > > > > <str name="echoParams">explicit</str>
> > > > > > <float name="tie">0.01</float>
> > > > > > <str name="qf">title^10 description^5 annotations^3 notes^2
> > > > > > categories</str>
> > > > > > <str name="pf">title</str>
> > > > > > <int name="ps">0</int>
> > > > > > <str name="q.alt">*:*</str>
> > > > > > <str name="fl">*,score</str>
> > > > > > <str name="mm">100%</str>
> > > > > > <str name="q.op">AND</str>
> > > > > > <str name="sort">score desc</str>
> > > > > > <str name="facet">true</str>
> > > > > > <str name="facet.limit">-1</str>
> > > > > > <str name="facet.mincount">1</str>
> > > > > > <str name="facet.field">uniq_subtype_id</str>
> > > > > > <str name="facet.field">component_type</str>
> > > > > > <str name="facet.field">genre_type</str>
> > > > > > </lst>
> > > > > > <lst name="appends">
> > > > > > <str name="fq">collection:assets</str>
> > > > > > </lst>
> > > > > > </requestHandler>
> > > > > >
> > > > > > If I search for 'countryside number 10' as the keyword then
> highlight
> > > > > only
> > > > > > if the 'annotations' contain all these entered search terms. Any
> > > > document
> > > > > > containing just one or two terms is not a match.
> > > > > >
> > > > > > Thanks,
> > > > > > Sandeep
> > > > > > (p.s: I haven't enabled the highlighting feature yet on this
> config
> > > and
> > > > > > will be doing so only if that will fulfil the requirement I have
> > > > > mentioned
> > > > > > above.)
> > > > > >
> > > > >
> > > > > --
> > > > > _____________________________________________________________
> > > > > The information contained in this communication is intended solely
> for
> > > > the
> > > > > use of the individual or entity to whom it is addressed and others
> > > > > authorized to receive it. It may contain confidential or legally
> > > > privileged
> > > > > information. If you are not the intended recipient you are hereby
> > > > notified
> > > > > that any disclosure, copying, distribution or taking any action in
> > > > reliance
> > > > > on the contents of this information is strictly prohibited and may
> be
> > > > > unlawful. If you have received this communication in error, please
> > > notify
> > > > > us immediately by responding to this email and then delete it from
> your
> > > > > system. The firm is neither liable for the proper and complete
> > > > transmission
> > > > > of the information contained in this communication nor for any
> delay in
> > > > its
> > > > > receipt.
> > > > >
> > > >
> > >
> > > --
> > > _____________________________________________________________
> > > The information contained in this communication is intended solely for
> the
> > > use of the individual or entity to whom it is addressed and others
> > > authorized to receive it. It may contain confidential or legally
> privileged
> > > information. If you are not the intended recipient you are hereby
> notified
> > > that any disclosure, copying, distribution or taking any action in
> reliance
> > > on the contents of this information is strictly prohibited and may be
> > > unlawful. If you have received this communication in error, please
> notify
> > > us immediately by responding to this email and then delete it from your
> > > system. The firm is neither liable for the proper and complete
> transmission
> > > of the information contained in this communication nor for any delay
> in its
> > > receipt.
> > >
>

Re: Highlight only when all keywords match

Posted by Upayavira <uv...@odoko.co.uk>.
If you are saying that you want to change highlighting behaviour, not
query behaviour, then I suspect you are going to have to interact with
the java HighlightComponent. If you can work out how to update that
component to behave as you wish, you could either subclass it, or create
your own implementation that you can include in your Solr setup. Or, if
you make it generic enough, offer it back as a contribution that can be
included in future Solr releases.

Upayavira

On Mon, May 20, 2013, at 12:14 PM, Sandeep Mestry wrote:
> I doubt if that will be the correct approach as it will be hard to
> generate
> the query grammar considering we have support for phrase, operator,
> wildcard and group queries.
> That's why I have kept it simple and only passing the query text with
> minimal parsing (escaping lucene special characters) to configured
> edismax.
> The number of fields I have mentioned above are a lot lesser than the
> actual number of fields - around 50 in number :-). So forming such a long
> query will both be time and resource consuming. Further, it's not going
> to
> fulfill my requirement anyway because I do not want to change my search
> results, the requirement is only to provide a highlight if a field is
> matched for all the query terms.
> 
> Thanks,
> Sandeep
> 
> 
> On 20 May 2013 12:02, Jaideep Dhok <ja...@inmobi.com> wrote:
> 
> > If you know all fields that need to be queried, you can rewrite it as -
> > (assuming, f1, f2 are the fields that you have to search)
> > (f1:kw1 AND f1:kw2 ... f1:kwn) OR (f2:kw1 AND f2:kw2 ... f2:kwn)
> >
> > -
> > Jaideep
> >
> >
> > On Mon, May 20, 2013 at 4:22 PM, Sandeep Mestry <sa...@gmail.com>
> > wrote:
> >
> > > Hi Jaideep,
> > >
> > > The edismax config I have posted mentioned that the default operator is
> > > AND. I am sorry if I was not clear in my previous mail, what I need
> > really
> > > is highlight a field when all search query terms present. The current
> > > highlighter works for *any* of the terms match and not for *all* terms
> > > match.
> > >
> > > Thanks,
> > > Sandeep
> > >
> > >
> > > On 20 May 2013 11:40, Jaideep Dhok <ja...@inmobi.com> wrote:
> > >
> > > > Sandeep,
> > > > If you AND all keywords, that should be OK?
> > > >
> > > > Thanks
> > > > Jaideep
> > > >
> > > >
> > > > On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <sa...@gmail.com>
> > > > wrote:
> > > >
> > > > > Dear All,
> > > > >
> > > > > I have a requirement to highlight a field only when all keywords
> > > entered
> > > > > match. This also needs to support phrase, operator or wildcard
> > queries.
> > > > > I'm using Solr 4.0 with edismax because the search needs to be
> > carried
> > > > out
> > > > > on multiple fields.
> > > > > I know with highlighting feature I can configure a field to indicate
> > a
> > > > > match, however I do not find a setting to highlight only if all
> > > keywords
> > > > > match. That makes me think is that the right approach to take? Can
> > you
> > > > > please guide me in right direction?
> > > > >
> > > > > The edsimax config looks like below:
> > > > >
> > > > > <requestHandler name="assdismax" class="solr.SearchHandler">
> > > > > <lst name="defaults">
> > > > > <str name="defType">edismax</str>
> > > > > <str name="echoParams">explicit</str>
> > > > > <float name="tie">0.01</float>
> > > > > <str name="qf">title^10 description^5 annotations^3 notes^2
> > > > > categories</str>
> > > > > <str name="pf">title</str>
> > > > > <int name="ps">0</int>
> > > > > <str name="q.alt">*:*</str>
> > > > > <str name="fl">*,score</str>
> > > > > <str name="mm">100%</str>
> > > > > <str name="q.op">AND</str>
> > > > > <str name="sort">score desc</str>
> > > > > <str name="facet">true</str>
> > > > > <str name="facet.limit">-1</str>
> > > > > <str name="facet.mincount">1</str>
> > > > > <str name="facet.field">uniq_subtype_id</str>
> > > > > <str name="facet.field">component_type</str>
> > > > > <str name="facet.field">genre_type</str>
> > > > > </lst>
> > > > > <lst name="appends">
> > > > > <str name="fq">collection:assets</str>
> > > > > </lst>
> > > > > </requestHandler>
> > > > >
> > > > > If I search for 'countryside number 10' as the keyword then highlight
> > > > only
> > > > > if the 'annotations' contain all these entered search terms. Any
> > > document
> > > > > containing just one or two terms is not a match.
> > > > >
> > > > > Thanks,
> > > > > Sandeep
> > > > > (p.s: I haven't enabled the highlighting feature yet on this config
> > and
> > > > > will be doing so only if that will fulfil the requirement I have
> > > > mentioned
> > > > > above.)
> > > > >
> > > >
> > > > --
> > > > _____________________________________________________________
> > > > The information contained in this communication is intended solely for
> > > the
> > > > use of the individual or entity to whom it is addressed and others
> > > > authorized to receive it. It may contain confidential or legally
> > > privileged
> > > > information. If you are not the intended recipient you are hereby
> > > notified
> > > > that any disclosure, copying, distribution or taking any action in
> > > reliance
> > > > on the contents of this information is strictly prohibited and may be
> > > > unlawful. If you have received this communication in error, please
> > notify
> > > > us immediately by responding to this email and then delete it from your
> > > > system. The firm is neither liable for the proper and complete
> > > transmission
> > > > of the information contained in this communication nor for any delay in
> > > its
> > > > receipt.
> > > >
> > >
> >
> > --
> > _____________________________________________________________
> > The information contained in this communication is intended solely for the
> > use of the individual or entity to whom it is addressed and others
> > authorized to receive it. It may contain confidential or legally privileged
> > information. If you are not the intended recipient you are hereby notified
> > that any disclosure, copying, distribution or taking any action in reliance
> > on the contents of this information is strictly prohibited and may be
> > unlawful. If you have received this communication in error, please notify
> > us immediately by responding to this email and then delete it from your
> > system. The firm is neither liable for the proper and complete transmission
> > of the information contained in this communication nor for any delay in its
> > receipt.
> >

Re: Highlight only when all keywords match

Posted by Sandeep Mestry <sa...@gmail.com>.
I doubt if that will be the correct approach as it will be hard to generate
the query grammar considering we have support for phrase, operator,
wildcard and group queries.
That's why I have kept it simple and only passing the query text with
minimal parsing (escaping lucene special characters) to configured edismax.
The number of fields I have mentioned above are a lot lesser than the
actual number of fields - around 50 in number :-). So forming such a long
query will both be time and resource consuming. Further, it's not going to
fulfill my requirement anyway because I do not want to change my search
results, the requirement is only to provide a highlight if a field is
matched for all the query terms.

Thanks,
Sandeep


On 20 May 2013 12:02, Jaideep Dhok <ja...@inmobi.com> wrote:

> If you know all fields that need to be queried, you can rewrite it as -
> (assuming, f1, f2 are the fields that you have to search)
> (f1:kw1 AND f1:kw2 ... f1:kwn) OR (f2:kw1 AND f2:kw2 ... f2:kwn)
>
> -
> Jaideep
>
>
> On Mon, May 20, 2013 at 4:22 PM, Sandeep Mestry <sa...@gmail.com>
> wrote:
>
> > Hi Jaideep,
> >
> > The edismax config I have posted mentioned that the default operator is
> > AND. I am sorry if I was not clear in my previous mail, what I need
> really
> > is highlight a field when all search query terms present. The current
> > highlighter works for *any* of the terms match and not for *all* terms
> > match.
> >
> > Thanks,
> > Sandeep
> >
> >
> > On 20 May 2013 11:40, Jaideep Dhok <ja...@inmobi.com> wrote:
> >
> > > Sandeep,
> > > If you AND all keywords, that should be OK?
> > >
> > > Thanks
> > > Jaideep
> > >
> > >
> > > On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <sa...@gmail.com>
> > > wrote:
> > >
> > > > Dear All,
> > > >
> > > > I have a requirement to highlight a field only when all keywords
> > entered
> > > > match. This also needs to support phrase, operator or wildcard
> queries.
> > > > I'm using Solr 4.0 with edismax because the search needs to be
> carried
> > > out
> > > > on multiple fields.
> > > > I know with highlighting feature I can configure a field to indicate
> a
> > > > match, however I do not find a setting to highlight only if all
> > keywords
> > > > match. That makes me think is that the right approach to take? Can
> you
> > > > please guide me in right direction?
> > > >
> > > > The edsimax config looks like below:
> > > >
> > > > <requestHandler name="assdismax" class="solr.SearchHandler">
> > > > <lst name="defaults">
> > > > <str name="defType">edismax</str>
> > > > <str name="echoParams">explicit</str>
> > > > <float name="tie">0.01</float>
> > > > <str name="qf">title^10 description^5 annotations^3 notes^2
> > > > categories</str>
> > > > <str name="pf">title</str>
> > > > <int name="ps">0</int>
> > > > <str name="q.alt">*:*</str>
> > > > <str name="fl">*,score</str>
> > > > <str name="mm">100%</str>
> > > > <str name="q.op">AND</str>
> > > > <str name="sort">score desc</str>
> > > > <str name="facet">true</str>
> > > > <str name="facet.limit">-1</str>
> > > > <str name="facet.mincount">1</str>
> > > > <str name="facet.field">uniq_subtype_id</str>
> > > > <str name="facet.field">component_type</str>
> > > > <str name="facet.field">genre_type</str>
> > > > </lst>
> > > > <lst name="appends">
> > > > <str name="fq">collection:assets</str>
> > > > </lst>
> > > > </requestHandler>
> > > >
> > > > If I search for 'countryside number 10' as the keyword then highlight
> > > only
> > > > if the 'annotations' contain all these entered search terms. Any
> > document
> > > > containing just one or two terms is not a match.
> > > >
> > > > Thanks,
> > > > Sandeep
> > > > (p.s: I haven't enabled the highlighting feature yet on this config
> and
> > > > will be doing so only if that will fulfil the requirement I have
> > > mentioned
> > > > above.)
> > > >
> > >
> > > --
> > > _____________________________________________________________
> > > The information contained in this communication is intended solely for
> > the
> > > use of the individual or entity to whom it is addressed and others
> > > authorized to receive it. It may contain confidential or legally
> > privileged
> > > information. If you are not the intended recipient you are hereby
> > notified
> > > that any disclosure, copying, distribution or taking any action in
> > reliance
> > > on the contents of this information is strictly prohibited and may be
> > > unlawful. If you have received this communication in error, please
> notify
> > > us immediately by responding to this email and then delete it from your
> > > system. The firm is neither liable for the proper and complete
> > transmission
> > > of the information contained in this communication nor for any delay in
> > its
> > > receipt.
> > >
> >
>
> --
> _____________________________________________________________
> The information contained in this communication is intended solely for the
> use of the individual or entity to whom it is addressed and others
> authorized to receive it. It may contain confidential or legally privileged
> information. If you are not the intended recipient you are hereby notified
> that any disclosure, copying, distribution or taking any action in reliance
> on the contents of this information is strictly prohibited and may be
> unlawful. If you have received this communication in error, please notify
> us immediately by responding to this email and then delete it from your
> system. The firm is neither liable for the proper and complete transmission
> of the information contained in this communication nor for any delay in its
> receipt.
>

Re: Highlight only when all keywords match

Posted by Jaideep Dhok <ja...@inmobi.com>.
If you know all fields that need to be queried, you can rewrite it as -
(assuming, f1, f2 are the fields that you have to search)
(f1:kw1 AND f1:kw2 ... f1:kwn) OR (f2:kw1 AND f2:kw2 ... f2:kwn)

-
Jaideep


On Mon, May 20, 2013 at 4:22 PM, Sandeep Mestry <sa...@gmail.com> wrote:

> Hi Jaideep,
>
> The edismax config I have posted mentioned that the default operator is
> AND. I am sorry if I was not clear in my previous mail, what I need really
> is highlight a field when all search query terms present. The current
> highlighter works for *any* of the terms match and not for *all* terms
> match.
>
> Thanks,
> Sandeep
>
>
> On 20 May 2013 11:40, Jaideep Dhok <ja...@inmobi.com> wrote:
>
> > Sandeep,
> > If you AND all keywords, that should be OK?
> >
> > Thanks
> > Jaideep
> >
> >
> > On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <sa...@gmail.com>
> > wrote:
> >
> > > Dear All,
> > >
> > > I have a requirement to highlight a field only when all keywords
> entered
> > > match. This also needs to support phrase, operator or wildcard queries.
> > > I'm using Solr 4.0 with edismax because the search needs to be carried
> > out
> > > on multiple fields.
> > > I know with highlighting feature I can configure a field to indicate a
> > > match, however I do not find a setting to highlight only if all
> keywords
> > > match. That makes me think is that the right approach to take? Can you
> > > please guide me in right direction?
> > >
> > > The edsimax config looks like below:
> > >
> > > <requestHandler name="assdismax" class="solr.SearchHandler">
> > > <lst name="defaults">
> > > <str name="defType">edismax</str>
> > > <str name="echoParams">explicit</str>
> > > <float name="tie">0.01</float>
> > > <str name="qf">title^10 description^5 annotations^3 notes^2
> > > categories</str>
> > > <str name="pf">title</str>
> > > <int name="ps">0</int>
> > > <str name="q.alt">*:*</str>
> > > <str name="fl">*,score</str>
> > > <str name="mm">100%</str>
> > > <str name="q.op">AND</str>
> > > <str name="sort">score desc</str>
> > > <str name="facet">true</str>
> > > <str name="facet.limit">-1</str>
> > > <str name="facet.mincount">1</str>
> > > <str name="facet.field">uniq_subtype_id</str>
> > > <str name="facet.field">component_type</str>
> > > <str name="facet.field">genre_type</str>
> > > </lst>
> > > <lst name="appends">
> > > <str name="fq">collection:assets</str>
> > > </lst>
> > > </requestHandler>
> > >
> > > If I search for 'countryside number 10' as the keyword then highlight
> > only
> > > if the 'annotations' contain all these entered search terms. Any
> document
> > > containing just one or two terms is not a match.
> > >
> > > Thanks,
> > > Sandeep
> > > (p.s: I haven't enabled the highlighting feature yet on this config and
> > > will be doing so only if that will fulfil the requirement I have
> > mentioned
> > > above.)
> > >
> >
> > --
> > _____________________________________________________________
> > The information contained in this communication is intended solely for
> the
> > use of the individual or entity to whom it is addressed and others
> > authorized to receive it. It may contain confidential or legally
> privileged
> > information. If you are not the intended recipient you are hereby
> notified
> > that any disclosure, copying, distribution or taking any action in
> reliance
> > on the contents of this information is strictly prohibited and may be
> > unlawful. If you have received this communication in error, please notify
> > us immediately by responding to this email and then delete it from your
> > system. The firm is neither liable for the proper and complete
> transmission
> > of the information contained in this communication nor for any delay in
> its
> > receipt.
> >
>

-- 
_____________________________________________________________
The information contained in this communication is intended solely for the 
use of the individual or entity to whom it is addressed and others 
authorized to receive it. It may contain confidential or legally privileged 
information. If you are not the intended recipient you are hereby notified 
that any disclosure, copying, distribution or taking any action in reliance 
on the contents of this information is strictly prohibited and may be 
unlawful. If you have received this communication in error, please notify 
us immediately by responding to this email and then delete it from your 
system. The firm is neither liable for the proper and complete transmission 
of the information contained in this communication nor for any delay in its 
receipt.

Re: Highlight only when all keywords match

Posted by Sandeep Mestry <sa...@gmail.com>.
Hi Jaideep,

The edismax config I have posted mentioned that the default operator is
AND. I am sorry if I was not clear in my previous mail, what I need really
is highlight a field when all search query terms present. The current
highlighter works for *any* of the terms match and not for *all* terms
match.

Thanks,
Sandeep


On 20 May 2013 11:40, Jaideep Dhok <ja...@inmobi.com> wrote:

> Sandeep,
> If you AND all keywords, that should be OK?
>
> Thanks
> Jaideep
>
>
> On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <sa...@gmail.com>
> wrote:
>
> > Dear All,
> >
> > I have a requirement to highlight a field only when all keywords entered
> > match. This also needs to support phrase, operator or wildcard queries.
> > I'm using Solr 4.0 with edismax because the search needs to be carried
> out
> > on multiple fields.
> > I know with highlighting feature I can configure a field to indicate a
> > match, however I do not find a setting to highlight only if all keywords
> > match. That makes me think is that the right approach to take? Can you
> > please guide me in right direction?
> >
> > The edsimax config looks like below:
> >
> > <requestHandler name="assdismax" class="solr.SearchHandler">
> > <lst name="defaults">
> > <str name="defType">edismax</str>
> > <str name="echoParams">explicit</str>
> > <float name="tie">0.01</float>
> > <str name="qf">title^10 description^5 annotations^3 notes^2
> > categories</str>
> > <str name="pf">title</str>
> > <int name="ps">0</int>
> > <str name="q.alt">*:*</str>
> > <str name="fl">*,score</str>
> > <str name="mm">100%</str>
> > <str name="q.op">AND</str>
> > <str name="sort">score desc</str>
> > <str name="facet">true</str>
> > <str name="facet.limit">-1</str>
> > <str name="facet.mincount">1</str>
> > <str name="facet.field">uniq_subtype_id</str>
> > <str name="facet.field">component_type</str>
> > <str name="facet.field">genre_type</str>
> > </lst>
> > <lst name="appends">
> > <str name="fq">collection:assets</str>
> > </lst>
> > </requestHandler>
> >
> > If I search for 'countryside number 10' as the keyword then highlight
> only
> > if the 'annotations' contain all these entered search terms. Any document
> > containing just one or two terms is not a match.
> >
> > Thanks,
> > Sandeep
> > (p.s: I haven't enabled the highlighting feature yet on this config and
> > will be doing so only if that will fulfil the requirement I have
> mentioned
> > above.)
> >
>
> --
> _____________________________________________________________
> The information contained in this communication is intended solely for the
> use of the individual or entity to whom it is addressed and others
> authorized to receive it. It may contain confidential or legally privileged
> information. If you are not the intended recipient you are hereby notified
> that any disclosure, copying, distribution or taking any action in reliance
> on the contents of this information is strictly prohibited and may be
> unlawful. If you have received this communication in error, please notify
> us immediately by responding to this email and then delete it from your
> system. The firm is neither liable for the proper and complete transmission
> of the information contained in this communication nor for any delay in its
> receipt.
>

Re: Highlight only when all keywords match

Posted by Jaideep Dhok <ja...@inmobi.com>.
Sandeep,
If you AND all keywords, that should be OK?

Thanks
Jaideep


On Mon, May 20, 2013 at 3:44 PM, Sandeep Mestry <sa...@gmail.com> wrote:

> Dear All,
>
> I have a requirement to highlight a field only when all keywords entered
> match. This also needs to support phrase, operator or wildcard queries.
> I'm using Solr 4.0 with edismax because the search needs to be carried out
> on multiple fields.
> I know with highlighting feature I can configure a field to indicate a
> match, however I do not find a setting to highlight only if all keywords
> match. That makes me think is that the right approach to take? Can you
> please guide me in right direction?
>
> The edsimax config looks like below:
>
> <requestHandler name="assdismax" class="solr.SearchHandler">
> <lst name="defaults">
> <str name="defType">edismax</str>
> <str name="echoParams">explicit</str>
> <float name="tie">0.01</float>
> <str name="qf">title^10 description^5 annotations^3 notes^2
> categories</str>
> <str name="pf">title</str>
> <int name="ps">0</int>
> <str name="q.alt">*:*</str>
> <str name="fl">*,score</str>
> <str name="mm">100%</str>
> <str name="q.op">AND</str>
> <str name="sort">score desc</str>
> <str name="facet">true</str>
> <str name="facet.limit">-1</str>
> <str name="facet.mincount">1</str>
> <str name="facet.field">uniq_subtype_id</str>
> <str name="facet.field">component_type</str>
> <str name="facet.field">genre_type</str>
> </lst>
> <lst name="appends">
> <str name="fq">collection:assets</str>
> </lst>
> </requestHandler>
>
> If I search for 'countryside number 10' as the keyword then highlight only
> if the 'annotations' contain all these entered search terms. Any document
> containing just one or two terms is not a match.
>
> Thanks,
> Sandeep
> (p.s: I haven't enabled the highlighting feature yet on this config and
> will be doing so only if that will fulfil the requirement I have mentioned
> above.)
>

-- 
_____________________________________________________________
The information contained in this communication is intended solely for the 
use of the individual or entity to whom it is addressed and others 
authorized to receive it. It may contain confidential or legally privileged 
information. If you are not the intended recipient you are hereby notified 
that any disclosure, copying, distribution or taking any action in reliance 
on the contents of this information is strictly prohibited and may be 
unlawful. If you have received this communication in error, please notify 
us immediately by responding to this email and then delete it from your 
system. The firm is neither liable for the proper and complete transmission 
of the information contained in this communication nor for any delay in its 
receipt.