Re: Boosting on field empty or not

2012-05-15 Thread Ahmet Arslan
 Basically I want documents that have a given field populated
 to have a
 higher score than the documents that dont.  So if you
 search for foo I want
 documents that contain foo, but i want the documents that
 have field a
 populated to have a higher score...


Hi Donald,

Since you are using edismax, it is better to use bq (boosting query) for this.

bq=reqularprice:[* TO *]^50

http://wiki.apache.org/solr/DisMaxQParserPlugin#bq_.28Boost_Query.29

defType=edismaxqf=nameSuggest^10 name^10 codeTXT^2 description^1 
brand_search^0 cat_search^10q=chairsbq=reqularprice:[* TO *]^50



Re: Boosting on field empty or not

2012-05-15 Thread Donald Organ
The problem with what you provided is it is boosting ALL documents whether
the field is empty or not

On Tue, May 15, 2012 at 3:52 AM, Ahmet Arslan iori...@yahoo.com wrote:

  Basically I want documents that have a given field populated
  to have a
  higher score than the documents that dont.  So if you
  search for foo I want
  documents that contain foo, but i want the documents that
  have field a
  populated to have a higher score...


 Hi Donald,

 Since you are using edismax, it is better to use bq (boosting query) for
 this.

 bq=reqularprice:[* TO *]^50

 http://wiki.apache.org/solr/DisMaxQParserPlugin#bq_.28Boost_Query.29

 defType=edismaxqf=nameSuggest^10 name^10 codeTXT^2 description^1
 brand_search^0 cat_search^10q=chairsbq=reqularprice:[* TO *]^50




Re: Boosting on field empty or not

2012-05-15 Thread Ahmet Arslan
 The problem with what you provided is
 it is boosting ALL documents whether
 the field is empty or not

Then all of your fields are non-empty? What is the type of your field?



Re: Boosting on field empty or not

2012-05-15 Thread Ahmet Arslan
  The problem with what you
 provided is
  it is boosting ALL documents whether
  the field is empty or not
 
 Then all of your fields are non-empty? What is the type of
 your field?

How do you feed your documents to solr? My be you are indexing empty string? Is 
your field indexed=true? 

http://wiki.apache.org/solr/SolrQuerySyntax#Differences_From_Lucene_Query_Parser

-field:[* TO *] finds all documents without a value for field

Another approach is to use default=SOMETHING in your field definition. 
(schema.xml)   
field name=id type=int indexed=true stored=true default=0 /

Then you can use field:SOMETHING to retrieve empty fields. 
+*:* -field:SOMETHING retrieves non-empty documents.



Re: Boosting on field empty or not

2012-05-15 Thread Jack Krupansky
Let's go back to this step where things look correct, but we ran into the 
edismax bug which requires that you put a space between each left 
parenthesis and field name.


First, verify that you are using edismax or not.

Then, change:

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score 
desc


to

q=chairs AND ( regularprice:*^5 OR ( *:* -regularprice:*)^0.5)sort=score 
desc


(Note the space after each (.)

And make sure to uuencode your spaces as + or %20.

Also, try this to verify whether you really have chairs without prices:

q=chairs AND ( *:* -regularprice:*)sort=score desc

(Note that space after (.)

And for sanity, try this as well:

q=chairs AND ( -regularprice:*)sort=score desc

(Again, note that space after (.)

Those two queries should give identical results.

Finally, technically you should be able to use * or [* TO *] to match 
all values or negate them to match all documents without a value in a field, 
but try both to see that they do return the identical set of documents.


-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 4:19 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score 
desc



Same effect.


On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky 
j...@basetechnology.comwrote:



Change the second boost to 0.5 to de-boost doc that are missing the field
value. You had them the same.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 4:01 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK it looks like the query change is working but it looks like it boosting
everything even documents that have that field empty

On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
wrote:

 OK i must be missing something:



defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
codeTXT^2 description^1 brand_search^0 cat_search^10spellcheck=true**
spellcheck.collate=true**spellcheck.q=chairsfacet.**
mincount=1fl=code,scoreq=**chairs AND (regularprice:*^5 OR (*:*
-regularprice:*)^5)sort=score desc


On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.com
**wrote:

 (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the

missing boost operator.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:31 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=true**
spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com

**wrote:

 Sorry, make that:



q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the
*:*
in there.

I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)


So, if a doc has anything in the field, it gets boosted, and if the 
doc

does not have anything in the field, de-boost it. Choose the boost
factors
to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I
want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 In a query or filter query you can write +field:* to require that a
field

 be populated or +(-field:*) to require that it not be populated



-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is 
empty

or
not.  I am looking to boost documents that have a specific field
populated.



















Re: Boosting on field empty or not

2012-05-15 Thread Donald Organ
I have figured it out using your recommendation...I just had to give it a
high enough boost.

BTW its a float field

On Tue, May 15, 2012 at 9:21 AM, Ahmet Arslan iori...@yahoo.com wrote:

  The problem with what you provided is
  it is boosting ALL documents whether
  the field is empty or not

 Then all of your fields are non-empty? What is the type of your field?




Re: Boosting on field empty or not

2012-05-15 Thread Donald Organ
Scratch that...it still seems to be boosting documents where the value of
the field is empty.


bq=regularprice:[0.01 TO *]^50

Results with bq set:

doc
float name=score2.2172112/float
str name=codebhl-ltab-30/str
  /doc


Results without bq set:

doc
float name=score2.4847748/float
str name=codebhl-ltab-30/str
  /doc


On Tue, May 15, 2012 at 12:40 PM, Donald Organ dor...@donaldorgan.comwrote:

 I have figured it out using your recommendation...I just had to give it a
 high enough boost.

 BTW its a float field

 On Tue, May 15, 2012 at 9:21 AM, Ahmet Arslan iori...@yahoo.com wrote:

  The problem with what you provided is
  it is boosting ALL documents whether
  the field is empty or not

 Then all of your fields are non-empty? What is the type of your field?





Re: Boosting on field empty or not

2012-05-15 Thread Ahmet Arslan
 Scratch that...it still seems to be
 boosting documents where the value of
 the field is empty.
 
 
 bq=regularprice:[0.01 TO *]^50
 
 Results with bq set:
 
 doc
     float
 name=score2.2172112/float
     str
 name=codebhl-ltab-30/str
   /doc
 
 
 Results without bq set:
 
 doc
     float
 name=score2.4847748/float
     str
 name=codebhl-ltab-30/str
   /doc
 

Important thing is the order. Does the order of results change in a way that 
you want? (When you add bq) 

It is not a good idea to compare scores of two different queries. I *think* 
queryNorm is causing this difference.
You can add debugQuery=on and see what is the difference.



Re: Boosting on field empty or not

2012-05-15 Thread Donald Organ
If the bq is only supposed apply the boost when the field value is greater
than 0.01 why would trying another query make sure this is working.

Its applying the boost to all the fields, yes when the boost is high enough
most of documents with a value GT 0.01 show up first however since it is
applying the boost to all the documents sometimes documents without a value
in this field appear before those that do.



On Tue, May 15, 2012 at 4:51 PM, Ahmet Arslan iori...@yahoo.com wrote:

  Scratch that...it still seems to be
  boosting documents where the value of
  the field is empty.
 
 
  bq=regularprice:[0.01 TO *]^50
 
  Results with bq set:
 
  doc
  float
  name=score2.2172112/float
  str
  name=codebhl-ltab-30/str
/doc
 
 
  Results without bq set:
 
  doc
  float
  name=score2.4847748/float
  str
  name=codebhl-ltab-30/str
/doc
 

 Important thing is the order. Does the order of results change in a way
 that you want? (When you add bq)

 It is not a good idea to compare scores of two different queries. I
 *think* queryNorm is causing this difference.
 You can add debugQuery=on and see what is the difference.




Re: Boosting on field empty or not

2012-05-15 Thread Ahmet Arslan

 If the bq is only supposed apply the
 boost when the field value is greater
 than 0.01 why would trying another query make sure this is
 working.
 
 Its applying the boost to all the fields, yes when the boost
 is high enough
 most of documents with a value GT 0.01 show up first however
 since it is
 applying the boost to all the documents sometimes documents
 without a value
 in this field appear before those that do.

If boosting is applied to all documents, then why result order is changing?

Sometimes documents without a value can show-up before because there are other 
factors that contribute score calculation. 

http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/search/Similarity.html

If you add debugQuery=on, you can see detailed explanation about how 
calculation is done.


Re: Boosting on field empty or not

2012-05-15 Thread Ahmet Arslan

Just tested to make sure. queryNorm is changing after you add bq parameter. For 
example : 0.00317763 = queryNorm becomes 0.0028020076 = queryNorm. 

Since all scores are multiplied by this queryNorm factor, score of a document ( 
even if it is not effected/boosted by bq) changes.

before bq=SOURCE:Haberler^100
doc
float name=score5.246903/float
str name=ID4529806/str
str name=SOURCEEnSonHaber/str
/doc

after bq=SOURCE:Haberler^100
doc
float name=score4.626675/float
str name=ID4529806/str
str name=SOURCEEnSonHaber/str
/doc

Does that makes sense? 

  If the bq is only supposed apply the
  boost when the field value is greater
  than 0.01 why would trying another query make sure this
 is
  working.
  
  Its applying the boost to all the fields, yes when the
 boost
  is high enough
  most of documents with a value GT 0.01 show up first
 however
  since it is
  applying the boost to all the documents sometimes
 documents
  without a value
  in this field appear before those that do.
 
 If boosting is applied to all documents, then why result
 order is changing?
 
 Sometimes documents without a value can show-up before
 because there are other factors that contribute score
 calculation. 
 
 http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/search/Similarity.html
 
 If you add debugQuery=on, you can see detailed
 explanation about how calculation is done.
 


Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky
In a query or filter query you can write +field:* to require that a field be 
populated or +(-field:*) to require that it not be populated


-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is empty or
not.  I am looking to boost documents that have a specific field populated. 



Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky j...@basetechnology.comwrote:

 In a query or filter query you can write +field:* to require that a field
 be populated or +(-field:*) to require that it not be populated

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is empty or
 not.  I am looking to boost documents that have a specific field
 populated.



Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky

foo AND (field:*^2.0 OR (-field:*)^0.5)

So, if a doc has anything in the field, it gets boosted, and if the doc does 
not have anything in the field, de-boost it. Choose the boost factors to 
suit your desired boosting effect.


-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
j...@basetechnology.comwrote:



In a query or filter query you can write +field:* to require that a field
be populated or +(-field:*) to require that it not be populated

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is empty or
not.  I am looking to boost documents that have a specific field
populated.





Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky j...@basetechnology.comwrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)

 So, if a doc has anything in the field, it gets boosted, and if the doc
 does not have anything in the field, de-boost it. Choose the boost factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have a
 higher score than the documents that dont.  So if you search for foo I want
 documents that contain foo, but i want the documents that have field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky j...@basetechnology.com*
 *wrote:

  In a query or filter query you can write +field:* to require that a field
 be populated or +(-field:*) to require that it not be populated

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is empty or
 not.  I am looking to boost documents that have a specific field
 populated.





Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky

Sorry, make that:

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the *:* in 
there.


I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
j...@basetechnology.comwrote:



foo AND (field:*^2.0 OR (-field:*)^0.5)

So, if a doc has anything in the field, it gets boosted, and if the doc
does not have anything in the field, de-boost it. Choose the boost factors
to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I 
want

documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky j...@basetechnology.com*
*wrote:

 In a query or filter query you can write +field:* to require that a field

be populated or +(-field:*) to require that it not be populated

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is empty or
not.  I am looking to boost documents that have a specific field
populated.








Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10 name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=truespellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.comwrote:

 Sorry, make that:

 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need the *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky j...@basetechnology.com*
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)

 So, if a doc has anything in the field, it gets boosted, and if the doc
 does not have anything in the field, de-boost it. Choose the boost factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have a
 higher score than the documents that dont.  So if you search for foo I
 want
 documents that contain foo, but i want the documents that have field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a field

 be populated or +(-field:*) to require that it not be populated

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is empty or
 not.  I am looking to boost documents that have a specific field
 populated.







Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky
(*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the missing 
boost operator.


-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 3:31 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10 name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=truespellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky 
j...@basetechnology.comwrote:



Sorry, make that:

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the *:*
in there.

I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky j...@basetechnology.com*
*wrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)


So, if a doc has anything in the field, it gets boosted, and if the doc
does not have anything in the field, de-boost it. Choose the boost 
factors

to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I
want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky j...@basetechnology.com
*
*wrote:

 In a query or filter query you can write +field:* to require that a 
field



be populated or +(-field:*) to require that it not be populated

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is empty 
or

not.  I am looking to boost documents that have a specific field
populated.











Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
OK i must be missing something:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10 name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=truespellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)^5)sort=score desc


On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.comwrote:

 (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
 missing boost operator.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:31 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 Still doesnt appear to be working.  Here is the full Query string:


 defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=true**spellcheck.collate=true**
 spellcheck.q=chairsfacet.**mincount=1fl=code,scoreq=**chairs
 AND (regularprice:*^5 OR (*:* -regularprice:*)5)


 On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com*
 *wrote:

  Sorry, make that:

 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need the *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky j...@basetechnology.com
 *
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)


 So, if a doc has anything in the field, it gets boosted, and if the doc
 does not have anything in the field, de-boost it. Choose the boost
 factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have a
 higher score than the documents that dont.  So if you search for foo I
 want
 documents that contain foo, but i want the documents that have field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a
 field

  be populated or +(-field:*) to require that it not be populated

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is empty
 or
 not.  I am looking to boost documents that have a specific field
 populated.









Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
OK it looks like the query change is working but it looks like it boosting
everything even documents that have that field empty

On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.comwrote:

 OK i must be missing something:


 defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10 name^10 
 codeTXT^2 description^1 brand_search^0 
 cat_search^10spellcheck=truespellcheck.collate=truespellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
  AND (regularprice:*^5 OR (*:* -regularprice:*)^5)sort=score desc


 On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky 
 j...@basetechnology.comwrote:

 (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
 missing boost operator.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:31 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 Still doesnt appear to be working.  Here is the full Query string:


 defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=true**spellcheck.collate=true**
 spellcheck.q=chairsfacet.**mincount=1fl=code,scoreq=**chairs
 AND (regularprice:*^5 OR (*:* -regularprice:*)5)


 On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com
 **wrote:

  Sorry, make that:

 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need the *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky j...@basetechnology.com
 *
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)


 So, if a doc has anything in the field, it gets boosted, and if the doc
 does not have anything in the field, de-boost it. Choose the boost
 factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have a
 higher score than the documents that dont.  So if you search for foo I
 want
 documents that contain foo, but i want the documents that have field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a
 field

  be populated or +(-field:*) to require that it not be populated

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is empty
 or
 not.  I am looking to boost documents that have a specific field
 populated.










Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky
Change the second boost to 0.5 to de-boost doc that are missing the field 
value. You had them the same.


-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 4:01 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK it looks like the query change is working but it looks like it boosting
everything even documents that have that field empty

On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.comwrote:


OK i must be missing something:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10 name^10 
codeTXT^2 description^1 brand_search^0 
cat_search^10spellcheck=truespellcheck.collate=truespellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs 
AND (regularprice:*^5 OR (*:* -regularprice:*)^5)sort=score desc



On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky 
j...@basetechnology.comwrote:



(*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
missing boost operator.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:31 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=true**spellcheck.collate=true**
spellcheck.q=chairsfacet.**mincount=1fl=code,scoreq=**chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com
**wrote:

 Sorry, make that:


q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the 
*:*

in there.

I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky j...@basetechnology.com
*
*wrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)



So, if a doc has anything in the field, it gets boosted, and if the doc
does not have anything in the field, de-boost it. Choose the boost
factors
to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I
want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 In a query or filter query you can write +field:* to require that a
field

 be populated or +(-field:*) to require that it not be populated


-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is empty
or
not.  I am looking to boost documents that have a specific field
populated.
















Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score desc


Same effect.


On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky j...@basetechnology.comwrote:

 Change the second boost to 0.5 to de-boost doc that are missing the field
 value. You had them the same.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 4:01 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK it looks like the query change is working but it looks like it boosting
 everything even documents that have that field empty

 On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
 wrote:

  OK i must be missing something:


 defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
 codeTXT^2 description^1 brand_search^0 cat_search^10spellcheck=true**
 spellcheck.collate=true**spellcheck.q=chairsfacet.**
 mincount=1fl=code,scoreq=**chairs AND (regularprice:*^5 OR (*:*
 -regularprice:*)^5)sort=score desc


 On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.com
 **wrote:

  (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
 missing boost operator.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:31 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 Still doesnt appear to be working.  Here is the full Query string:


 defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
 name^10
 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=truespellcheck.collate=true**
 spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
 AND (regularprice:*^5 OR (*:* -regularprice:*)5)


 On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com
 
 **wrote:

  Sorry, make that:


 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need the
 *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)


 So, if a doc has anything in the field, it gets boosted, and if the doc
 does not have anything in the field, de-boost it. Choose the boost
 factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have a
 higher score than the documents that dont.  So if you search for foo I
 want
 documents that contain foo, but i want the documents that have field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a
 field

  be populated or +(-field:*) to require that it not be populated


 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is empty
 or
 not.  I am looking to boost documents that have a specific field
 populated.












Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
I've even tried upping the boost to 10 and the de-boost to 1but yet its
still applying the boost to all the documents returned.  So it matter if
this is a money field?

On Mon, May 14, 2012 at 4:19 PM, Donald Organ dor...@donaldorgan.comwrote:

 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score desc


 Same effect.


 On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky 
 j...@basetechnology.comwrote:

 Change the second boost to 0.5 to de-boost doc that are missing the field
 value. You had them the same.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 4:01 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK it looks like the query change is working but it looks like it boosting
 everything even documents that have that field empty

 On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
 wrote:

  OK i must be missing something:


 defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10
 name^10 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=true**spellcheck.collate=true**
 spellcheck.q=chairsfacet.**mincount=1fl=code,scoreq=**chairs AND
 (regularprice:*^5 OR (*:* -regularprice:*)^5)sort=score desc


 On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.com
 **wrote:

  (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
 missing boost operator.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:31 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 Still doesnt appear to be working.  Here is the full Query string:


 defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
 name^10
 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=truespellcheck.collate=true**
 spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
 AND (regularprice:*^5 OR (*:* -regularprice:*)5)


 On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky 
 j...@basetechnology.com
 **wrote:

  Sorry, make that:


 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need the
 *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)


 So, if a doc has anything in the field, it gets boosted, and if the
 doc
 does not have anything in the field, de-boost it. Choose the boost
 factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have a
 higher score than the documents that dont.  So if you search for foo I
 want
 documents that contain foo, but i want the documents that have field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a
 field

  be populated or +(-field:*) to require that it not be populated


 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is
 empty
 or
 not.  I am looking to boost documents that have a specific field
 populated.













Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
OK i think i found the proper way to do what i was trying to do:

q=chairs AND (regularprice:[0 TO *]^5)


On Mon, May 14, 2012 at 4:25 PM, Donald Organ dor...@donaldorgan.comwrote:

 I've even tried upping the boost to 10 and the de-boost to 1but yet
 its still applying the boost to all the documents returned.  So it matter
 if this is a money field?

 On Mon, May 14, 2012 at 4:19 PM, Donald Organ dor...@donaldorgan.comwrote:

 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score desc


 Same effect.


 On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky 
 j...@basetechnology.comwrote:

 Change the second boost to 0.5 to de-boost doc that are missing the
 field value. You had them the same.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 4:01 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK it looks like the query change is working but it looks like it
 boosting
 everything even documents that have that field empty

 On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
 wrote:

  OK i must be missing something:


 defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10
 name^10 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=true**spellcheck.collate=true**
 spellcheck.q=chairsfacet.**mincount=1fl=code,scoreq=**chairs AND
 (regularprice:*^5 OR (*:* -regularprice:*)^5)sort=score desc


 On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky 
 j...@basetechnology.com**wrote:

  (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
 missing boost operator.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:31 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 Still doesnt appear to be working.  Here is the full Query string:


 defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
 name^10
 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=truespellcheck.collate=true**
 spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
 AND (regularprice:*^5 OR (*:* -regularprice:*)5)


 On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky 
 j...@basetechnology.com
 **wrote:

  Sorry, make that:


 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need the
 *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)


 So, if a doc has anything in the field, it gets boosted, and if the
 doc
 does not have anything in the field, de-boost it. Choose the boost
 factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to have
 a
 higher score than the documents that dont.  So if you search for foo
 I
 want
 documents that contain foo, but i want the documents that have field
 a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a
 field

  be populated or +(-field:*) to require that it not be populated


 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is
 empty
 or
 not.  I am looking to boost documents that have a specific field
 populated.














Re: Boosting on field empty or not

2012-05-14 Thread Donald Organ
OK thats giving me only documents that have the field populated


On Mon, May 14, 2012 at 4:28 PM, Donald Organ dor...@donaldorgan.comwrote:

 OK i think i found the proper way to do what i was trying to do:

 q=chairs AND (regularprice:[0 TO *]^5)


 On Mon, May 14, 2012 at 4:25 PM, Donald Organ dor...@donaldorgan.comwrote:

 I've even tried upping the boost to 10 and the de-boost to 1but yet
 its still applying the boost to all the documents returned.  So it matter
 if this is a money field?

 On Mon, May 14, 2012 at 4:19 PM, Donald Organ dor...@donaldorgan.comwrote:

 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score 
 desc


 Same effect.


 On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky j...@basetechnology.com
  wrote:

 Change the second boost to 0.5 to de-boost doc that are missing the
 field value. You had them the same.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 4:01 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK it looks like the query change is working but it looks like it
 boosting
 everything even documents that have that field empty

 On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
 wrote:

  OK i must be missing something:


 defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10
 name^10 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=true**spellcheck.collate=true**
 spellcheck.q=chairsfacet.**mincount=1fl=code,scoreq=**chairs AND
 (regularprice:*^5 OR (*:* -regularprice:*)^5)sort=score desc


 On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky 
 j...@basetechnology.com**wrote:

  (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the
 missing boost operator.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:31 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 Still doesnt appear to be working.  Here is the full Query string:


 defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
 name^10
 codeTXT^2 description^1 brand_search^0
 cat_search^10spellcheck=truespellcheck.collate=true**
 spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
 AND (regularprice:*^5 OR (*:* -regularprice:*)5)


 On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky 
 j...@basetechnology.com
 **wrote:

  Sorry, make that:


 q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

 I forgot that pure negative queries are broken again, so you need
 the *:*
 in there.

 I noticed that you second boost operator was missing as well.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 3:24 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK i just tried:

 q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


 And that gives me 0 results


 On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  foo AND (field:*^2.0 OR (-field:*)^0.5)


 So, if a doc has anything in the field, it gets boosted, and if the
 doc
 does not have anything in the field, de-boost it. Choose the boost
 factors
 to suit your desired boosting effect.

 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:38 PM
 To: solr-user@lucene.apache.org
 Subject: Re: Boosting on field empty or not

 OK maybe i need to describe this a little more.

 Basically I want documents that have a given field populated to
 have a
 higher score than the documents that dont.  So if you search for
 foo I
 want
 documents that contain foo, but i want the documents that have
 field a
 populated to have a higher score...

 Is there a way to do this?



 On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
 j...@basetechnology.com
 *
 *wrote:

  In a query or filter query you can write +field:* to require that a
 field

  be populated or +(-field:*) to require that it not be populated


 -- Jack Krupansky

 -Original Message- From: Donald Organ
 Sent: Monday, May 14, 2012 2:10 PM
 To: solr-user
 Subject: Boosting on field empty or not

 Is there a way to boost a document based on whether the field is
 empty
 or
 not.  I am looking to boost documents that have a specific field
 populated.















Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky

It may not matter, but the spaces in the query should be uuencoded as +.

I have the query working with Solr query, but it is giving me no docs for 
edismax for some reason. But, it does seem to work if I reverse the order of 
the query terms to be:


http://localhost:8983/solr/select/?q=*:*+AND+((*:*+-price:*)^0.5+OR+price:*^5)defType=edismaxdebugQuery=trueqf=text

Let me try a couple more things.

-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 4:19 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score 
desc



Same effect.


On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky 
j...@basetechnology.comwrote:



Change the second boost to 0.5 to de-boost doc that are missing the field
value. You had them the same.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 4:01 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK it looks like the query change is working but it looks like it boosting
everything even documents that have that field empty

On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
wrote:

 OK i must be missing something:



defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
codeTXT^2 description^1 brand_search^0 cat_search^10spellcheck=true**
spellcheck.collate=true**spellcheck.q=chairsfacet.**
mincount=1fl=code,scoreq=**chairs AND (regularprice:*^5 OR (*:*
-regularprice:*)^5)sort=score desc


On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.com
**wrote:

 (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the

missing boost operator.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:31 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=true**
spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com

**wrote:

 Sorry, make that:



q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the
*:*
in there.

I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)


So, if a doc has anything in the field, it gets boosted, and if the 
doc

does not have anything in the field, de-boost it. Choose the boost
factors
to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I
want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 In a query or filter query you can write +field:* to require that a
field

 be populated or +(-field:*) to require that it not be populated



-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is 
empty

or
not.  I am looking to boost documents that have a specific field
populated.



















Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky
Oh well, it looks like my suggestion is running into SOLR-3377 - eDismax: A 
fielded query wrapped by parens is not recognized.


See:
https://issues.apache.org/jira/browse/SOLR-3377

That issue has a patch, but not yet committed.

That explains why it works in the traditional Solr/Lucene query parser, but 
not in edismax.


http://localhost:8983/solr/select/?q=the+AND+(price:*^5+OR+(*:*+-price:*)^0.5)

-- Jack Krupansky

-Original Message- 
From: Jack Krupansky

Sent: Monday, May 14, 2012 4:49 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

It may not matter, but the spaces in the query should be uuencoded as +.

I have the query working with Solr query, but it is giving me no docs for
edismax for some reason. But, it does seem to work if I reverse the order of
the query terms to be:

http://localhost:8983/solr/select/?q=*:*+AND+((*:*+-price:*)^0.5+OR+price:*^5)defType=edismaxdebugQuery=trueqf=text

Let me try a couple more things.

-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 4:19 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score
desc


Same effect.


On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky
j...@basetechnology.comwrote:


Change the second boost to 0.5 to de-boost doc that are missing the field
value. You had them the same.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 4:01 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK it looks like the query change is working but it looks like it boosting
everything even documents that have that field empty

On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
wrote:

 OK i must be missing something:



defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
codeTXT^2 description^1 brand_search^0 cat_search^10spellcheck=true**
spellcheck.collate=true**spellcheck.q=chairsfacet.**
mincount=1fl=code,scoreq=**chairs AND (regularprice:*^5 OR (*:*
-regularprice:*)^5)sort=score desc


On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.com
**wrote:

 (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the

missing boost operator.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:31 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=true**
spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com

**wrote:

 Sorry, make that:



q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the
*:*
in there.

I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)


So, if a doc has anything in the field, it gets boosted, and if the 
doc

does not have anything in the field, de-boost it. Choose the boost
factors
to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I
want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 In a query or filter query you can write +field:* to require that a
field

 be populated or +(-field:*) to require that it not be populated



-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:10 PM
To: solr-user
Subject: Boosting on field empty or not

Is there a way to boost a document based on whether the field is 
empty

or
not.  I am looking to boost documents that have a specific field
populated.

















Re: Boosting on field empty or not

2012-05-14 Thread Jack Krupansky
Reading more closely, I see that there is a workaround: add a space after 
any left parenthesis.


So, try this:

q=chairs+AND+(+regularprice:*^5+OR+(+*:*+-regularprice:*)^5)

Here's an example of my own:

http://localhost:8983/solr/select/?q=the+AND+(+price:*^5+OR+(+*:*+-price:*)^0.5)defType=edismaxdebugQuery=trueqf=text

-- Jack Krupansky

-Original Message- 
From: Jack Krupansky

Sent: Monday, May 14, 2012 7:21 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Oh well, it looks like my suggestion is running into SOLR-3377 - eDismax: A
fielded query wrapped by parens is not recognized.

See:
https://issues.apache.org/jira/browse/SOLR-3377

That issue has a patch, but not yet committed.

That explains why it works in the traditional Solr/Lucene query parser, but
not in edismax.

http://localhost:8983/solr/select/?q=the+AND+(price:*^5+OR+(*:*+-price:*)^0.5)

-- Jack Krupansky

-Original Message- 
From: Jack Krupansky

Sent: Monday, May 14, 2012 4:49 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

It may not matter, but the spaces in the query should be uuencoded as +.

I have the query working with Solr query, but it is giving me no docs for
edismax for some reason. But, it does seem to work if I reverse the order of
the query terms to be:

http://localhost:8983/solr/select/?q=*:*+AND+((*:*+-price:*)^0.5+OR+price:*^5)defType=edismaxdebugQuery=trueqf=text

Let me try a couple more things.

-- Jack Krupansky

-Original Message- 
From: Donald Organ

Sent: Monday, May 14, 2012 4:19 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)sort=score
desc


Same effect.


On Mon, May 14, 2012 at 4:12 PM, Jack Krupansky
j...@basetechnology.comwrote:


Change the second boost to 0.5 to de-boost doc that are missing the field
value. You had them the same.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 4:01 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK it looks like the query change is working but it looks like it boosting
everything even documents that have that field empty

On Mon, May 14, 2012 at 3:41 PM, Donald Organ dor...@donaldorgan.com
wrote:

 OK i must be missing something:



defType=edismaxstart=0rows=**24facet=trueqf=nameSuggest^**10 name^10
codeTXT^2 description^1 brand_search^0 cat_search^10spellcheck=true**
spellcheck.collate=true**spellcheck.q=chairsfacet.**
mincount=1fl=code,scoreq=**chairs AND (regularprice:*^5 OR (*:*
-regularprice:*)^5)sort=score desc


On Mon, May 14, 2012 at 3:36 PM, Jack Krupansky j...@basetechnology.com
**wrote:

 (*:* -regularprice:*)5 should be (*:* -regularprice:*)^0.5 - the

missing boost operator.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:31 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

Still doesnt appear to be working.  Here is the full Query string:


defType=edismaxstart=0rows=24facet=trueqf=nameSuggest^10
name^10
codeTXT^2 description^1 brand_search^0
cat_search^10spellcheck=truespellcheck.collate=true**
spellcheck.q=chairsfacet.mincount=1fl=code,scoreq=chairs
AND (regularprice:*^5 OR (*:* -regularprice:*)5)


On Mon, May 14, 2012 at 3:28 PM, Jack Krupansky j...@basetechnology.com

**wrote:

 Sorry, make that:



q=chairs AND (regularprice:*^5 OR (*:* -regularprice:*)^0.5)

I forgot that pure negative queries are broken again, so you need the
*:*
in there.

I noticed that you second boost operator was missing as well.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 3:24 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK i just tried:

q=chairs AND (regularprice:*^5 OR (-regularprice:*)5)


And that gives me 0 results


On Mon, May 14, 2012 at 2:51 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 foo AND (field:*^2.0 OR (-field:*)^0.5)


So, if a doc has anything in the field, it gets boosted, and if the 
doc

does not have anything in the field, de-boost it. Choose the boost
factors
to suit your desired boosting effect.

-- Jack Krupansky

-Original Message- From: Donald Organ
Sent: Monday, May 14, 2012 2:38 PM
To: solr-user@lucene.apache.org
Subject: Re: Boosting on field empty or not

OK maybe i need to describe this a little more.

Basically I want documents that have a given field populated to have a
higher score than the documents that dont.  So if you search for foo I
want
documents that contain foo, but i want the documents that have field a
populated to have a higher score...

Is there a way to do this?



On Mon, May 14, 2012 at 2:22 PM, Jack Krupansky 
j...@basetechnology.com
*
*wrote:

 In a query or filter query you can write +field:* to require that a
field

 be populated or +(-field:*) to require