Re: help implementing a couple of business rules

2010-01-12 Thread Aleksander Stensby
For your first question, wouldn't it be possible to achieve that with some
simple boolean logic? I mean, if you have a requirement to match any of the
other fields AND description2, but not if it ONLY matches description 2:

say matching x against field A, B, and description 2:
((A:x OR B:x) AND description2:x)
would only give you results from description2 IF there is also a match in
either one of the other two fields.

If I misunderstood your requirements, you should also note that solr
supports pure negative field matching aswell, meaning that you CAN exclude
results from a specific field entirely. From the wiki:

 Pure negative queries (all clauses prohibited) are allowed. 
 -inStock:falsefinds all field values where inStock is not false


Hope that helps,
 Aleks


On Mon, Jan 11, 2010 at 7:29 PM, Joe Calderon calderon@gmail.comwrote:

 thx, but im not sure that covers all edge cases, to clarify
 1. matching description2 is okay if other fields are matched too, but
 results matching only to description2 should be omitted

 2. its okay to not match against the people field, but matches against
 the people field should only be phrase matches

 sorry if  i was unclear

 --joe
 On Mon, Jan 11, 2010 at 10:13 AM, Erik Hatcher erik.hatc...@gmail.com
 wrote:
 
  On Jan 11, 2010, at 12:56 PM, Joe Calderon wrote:
 
  1. given a set of fields how to return matches that match across them
  but not just one specific one, ex im using a dismax parser currently
  but i want to exclude any results that only match against a field
  called 'description2'
 
  One way could be to add an fq parameter to the request:
 
fq=-description2:(query)
 
  2. given a set of fields how to return matches that match across them
  but on one specific field match as a phrase only, ex im using a dismax
  parser currently but i want matches against a field called 'people' to
  only match as a phrase
 
  Doesn't setting pf=people accomplish this?
 
 Erik
 
 



help implementing a couple of business rules

2010-01-11 Thread Joe Calderon
hello *, im looking for help on writing queries to implement a few
business rules.


1. given a set of fields how to return matches that match across them
but not just one specific one, ex im using a dismax parser currently
but i want to exclude any results that only match against a field
called 'description2'


2. given a set of fields how to return matches that match across them
but on one specific field match as a phrase only, ex im using a dismax
parser currently but i want matches against a field called 'people' to
only match as a phrase


thx much,

--joe


Re: help implementing a couple of business rules

2010-01-11 Thread Erik Hatcher


On Jan 11, 2010, at 12:56 PM, Joe Calderon wrote:

1. given a set of fields how to return matches that match across them
but not just one specific one, ex im using a dismax parser currently
but i want to exclude any results that only match against a field
called 'description2'


One way could be to add an fq parameter to the request:

   fq=-description2:(query)


2. given a set of fields how to return matches that match across them
but on one specific field match as a phrase only, ex im using a dismax
parser currently but i want matches against a field called 'people' to
only match as a phrase


Doesn't setting pf=people accomplish this?

Erik



Re: help implementing a couple of business rules

2010-01-11 Thread Joe Calderon
thx, but im not sure that covers all edge cases, to clarify
1. matching description2 is okay if other fields are matched too, but
results matching only to description2 should be omitted

2. its okay to not match against the people field, but matches against
the people field should only be phrase matches

sorry if  i was unclear

--joe
On Mon, Jan 11, 2010 at 10:13 AM, Erik Hatcher erik.hatc...@gmail.com wrote:

 On Jan 11, 2010, at 12:56 PM, Joe Calderon wrote:

 1. given a set of fields how to return matches that match across them
 but not just one specific one, ex im using a dismax parser currently
 but i want to exclude any results that only match against a field
 called 'description2'

 One way could be to add an fq parameter to the request:

   fq=-description2:(query)

 2. given a set of fields how to return matches that match across them
 but on one specific field match as a phrase only, ex im using a dismax
 parser currently but i want matches against a field called 'people' to
 only match as a phrase

 Doesn't setting pf=people accomplish this?

        Erik