Re: Custom ranking solutions?

2012-11-20 Thread Daniel Rosher
Hi

The product function query needs a valuesource, not the pseudo score field.

You probably need something like (with Solr 4.0):

q={!lucene}*:*sort=product(query($q),2) desc,score
descfl=score,_score_:product(query($q),2),[explain]

Cheers,
Dan

On Tue, Nov 20, 2012 at 2:29 AM, Floyd Wu floyd...@gmail.com wrote:

 Hi there,

 Before ExternalFielField introduced, change document boost value to achieve
 custom ranking. My client app will update each boost value for documents
 daily and seem to worked fine.
 Actual ranking could be predicted based on boost value. (value is
 calculated based on click, recency, and rating ).

 I'm now try to use ExternalFileField to do some ranking, after some test, I
 did not get my expectation.

 I'm doing a sort like this

 sort=product(score,abs(rankingField))+desc
 But the query result ranking won't change anyway.

 The external file as following
 doc1=3
 doc2=5
 doc3=9

 The original score get from Solr result as fllowing
 doc1=41.042
 doc2=10.1256
 doc3=8.2135

 Expected ranking
 doc1
 doc3
 doc2

 What wrong in my test, please kindly help on this.

 Floyd



Re: Custom ranking solutions?

2012-11-20 Thread Floyd Wu
Hi Dan,

Thanks! I'm using boost query to solve this problem.

Floyd




2012/11/21 Daniel Rosher rosh...@gmail.com

 Hi

 The product function query needs a valuesource, not the pseudo score field.

 You probably need something like (with Solr 4.0):

 q={!lucene}*:*sort=product(query($q),2) desc,score
 descfl=score,_score_:product(query($q),2),[explain]

 Cheers,
 Dan

 On Tue, Nov 20, 2012 at 2:29 AM, Floyd Wu floyd...@gmail.com wrote:

  Hi there,
 
  Before ExternalFielField introduced, change document boost value to
 achieve
  custom ranking. My client app will update each boost value for documents
  daily and seem to worked fine.
  Actual ranking could be predicted based on boost value. (value is
  calculated based on click, recency, and rating ).
 
  I'm now try to use ExternalFileField to do some ranking, after some
 test, I
  did not get my expectation.
 
  I'm doing a sort like this
 
  sort=product(score,abs(rankingField))+desc
  But the query result ranking won't change anyway.
 
  The external file as following
  doc1=3
  doc2=5
  doc3=9
 
  The original score get from Solr result as fllowing
  doc1=41.042
  doc2=10.1256
  doc3=8.2135
 
  Expected ranking
  doc1
  doc3
  doc2
 
  What wrong in my test, please kindly help on this.
 
  Floyd
 



Re: Custom ranking solutions?

2012-11-19 Thread Otis Gospodnetic
Hi Floyd,

Use debugQuery=true and let's see it.:)

Otis
--
Performance Monitoring - http://sematext.com/spm/index.html
Search Analytics - http://sematext.com/search-analytics/index.html




On Mon, Nov 19, 2012 at 9:29 PM, Floyd Wu floyd...@gmail.com wrote:

 Hi there,

 Before ExternalFielField introduced, change document boost value to achieve
 custom ranking. My client app will update each boost value for documents
 daily and seem to worked fine.
 Actual ranking could be predicted based on boost value. (value is
 calculated based on click, recency, and rating ).

 I'm now try to use ExternalFileField to do some ranking, after some test, I
 did not get my expectation.

 I'm doing a sort like this

 sort=product(score,abs(rankingField))+desc
 But the query result ranking won't change anyway.

 The external file as following
 doc1=3
 doc2=5
 doc3=9

 The original score get from Solr result as fllowing
 doc1=41.042
 doc2=10.1256
 doc3=8.2135

 Expected ranking
 doc1
 doc3
 doc2

 What wrong in my test, please kindly help on this.

 Floyd



Re: Custom ranking solutions?

2012-11-19 Thread Floyd Wu
HI Otis,
The debug information as following, seems there is no product() process .

lst name=debug
str name=rawquerystring_l_all:測試/str
str name=querystring_l_all:測試/str
str name=parsedqueryPhraseQuery(_l_all:測 試)/str
str name=parsedquery_toString_l_all:測 試/str
lst name=explain
str name=222
41.11747 = (MATCH) weight(_l_all:測 試 in 0) [DefaultSimilarity], result
of: 41.11747 = fieldWeight in 0, product of: 4.1231055 = tf(freq=17.0),
with freq of: 17.0 = phraseFreq=17.0 1.4246359 = idf(), sum of: 0.71231794
= idf(docFreq=3, maxDocs=3) 0.71231794 = idf(docFreq=3, maxDocs=3) 7.0 =
fieldNorm(doc=0)
/str
str name=223
14.246359 = (MATCH) weight(_l_all:測 試 in 0) [DefaultSimilarity], result
of: 14.246359 = fieldWeight in 0, product of: 1.0 = tf(freq=1.0), with freq
of: 1.0 = phraseFreq=1.0 1.4246359 = idf(), sum of: 0.71231794 =
idf(docFreq=3, maxDocs=3) 0.71231794 = idf(docFreq=3, maxDocs=3) 10.0 =
fieldNorm(doc=0)
/str
str name=211
10.073696 = (MATCH) weight(_l_all:測 試 in 0) [DefaultSimilarity], result
of: 10.073696 = fieldWeight in 0, product of: 1.4142135 = tf(freq=2.0),
with freq of: 2.0 = phraseFreq=2.0 1.4246359 = idf(), sum of: 0.71231794 =
idf(docFreq=3, maxDocs=3) 0.71231794 = idf(docFreq=3, maxDocs=3) 5.0 =
fieldNorm(doc=0)
/str
/lst
str name=QParserLuceneQParser/str
lst name=timing
double name=time6.0/double
lst name=prepare
double name=time0.0/double
lst name=org.apache.solr.handler.component.QueryComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.FacetComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.MoreLikeThisComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.HighlightComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.StatsComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.DebugComponent
double name=time0.0/double
/lst
/lst
lst name=process
double name=time6.0/double
lst name=org.apache.solr.handler.component.QueryComponent
double name=time3.0/double
/lst
lst name=org.apache.solr.handler.component.FacetComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.MoreLikeThisComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.HighlightComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.StatsComponent
double name=time0.0/double
/lst
lst name=org.apache.solr.handler.component.DebugComponent
double name=time3.0/double
/lst
/lst
/lst
/lst


2012/11/20 Otis Gospodnetic otis.gospodne...@gmail.com

 Hi Floyd,

 Use debugQuery=true and let's see it.:)

 Otis
 --
 Performance Monitoring - http://sematext.com/spm/index.html
 Search Analytics - http://sematext.com/search-analytics/index.html




 On Mon, Nov 19, 2012 at 9:29 PM, Floyd Wu floyd...@gmail.com wrote:

  Hi there,
 
  Before ExternalFielField introduced, change document boost value to
 achieve
  custom ranking. My client app will update each boost value for documents
  daily and seem to worked fine.
  Actual ranking could be predicted based on boost value. (value is
  calculated based on click, recency, and rating ).
 
  I'm now try to use ExternalFileField to do some ranking, after some
 test, I
  did not get my expectation.
 
  I'm doing a sort like this
 
  sort=product(score,abs(rankingField))+desc
  But the query result ranking won't change anyway.
 
  The external file as following
  doc1=3
  doc2=5
  doc3=9
 
  The original score get from Solr result as fllowing
  doc1=41.042
  doc2=10.1256
  doc3=8.2135
 
  Expected ranking
  doc1
  doc3
  doc2
 
  What wrong in my test, please kindly help on this.
 
  Floyd
 



Re: Custom ranking solutions?

2012-11-19 Thread Floyd Wu
Hi Otis,

I'm doing some test like this,

http://localhost:8983/solr/select/?fl=score,_l_unique_keydefType=funcq=product(abs(rankingField),abs(score))http://localhost:8983/solr/select/?fl=score,_l_unique_keydefType=funcq=product(abs(ranking),abs(score))

and I get following response,

lst name=error
str name=msgcan not use FieldCache on unindexed field: score/str
int name=code400/int
/lst

if change score to rankingField like this

http://localhost:8983/solr/select/?fl=score,_l_unique_keydefType=funcq=product(abs(rankingField),abs(rankingField))http://localhost:8983/solr/select/?fl=score,_l_unique_keydefType=funcq=product(abs(ranking),abs(score))

result name=response numFound=3 start=0 maxScore=2500.0
doc
str name=_l_unique_key211/str
float name=score2500.0/float
/doc
doc
str name=_l_unique_key223/str
float name=score4.0/float
/doc
doc
str name=_l_unique_key222/str
float name=score0.01001/float
/doc
/result

Seems like score could not put into function query?

Floyd




2012/11/20 Otis Gospodnetic otis.gospodne...@gmail.com

 Hi Floyd,

 Use debugQuery=true and let's see it.:)

 Otis
 --
 Performance Monitoring - http://sematext.com/spm/index.html
 Search Analytics - http://sematext.com/search-analytics/index.html




 On Mon, Nov 19, 2012 at 9:29 PM, Floyd Wu floyd...@gmail.com wrote:

  Hi there,
 
  Before ExternalFielField introduced, change document boost value to
 achieve
  custom ranking. My client app will update each boost value for documents
  daily and seem to worked fine.
  Actual ranking could be predicted based on boost value. (value is
  calculated based on click, recency, and rating ).
 
  I'm now try to use ExternalFileField to do some ranking, after some
 test, I
  did not get my expectation.
 
  I'm doing a sort like this
 
  sort=product(score,abs(rankingField))+desc
  But the query result ranking won't change anyway.
 
  The external file as following
  doc1=3
  doc2=5
  doc3=9
 
  The original score get from Solr result as fllowing
  doc1=41.042
  doc2=10.1256
  doc3=8.2135
 
  Expected ranking
  doc1
  doc3
  doc2
 
  What wrong in my test, please kindly help on this.
 
  Floyd