2017-02-23 82 views
0

Solr的新手在這裏不能提振縮略圖場 - SOLR

我構造查詢,以提高我的網頁上的某些項目,我希望能夠提高包含縮略圖(圖像)值字段:

<doc> 
<str name="campaign"/>campaign 
<str name="productclass">B</str> 
<str name="thumbnail"> 
HPMAssets/d120001/derivates/1/250/103/005358625_121203_080900_9853_thumb.jpg 
</str> 
</doc> 

例如在上面,「縮略圖」包含一個值,因此應顯示在搜索結果頁面上的上漲。我曾嘗試過:

q=(thumbnail:["" TO *])^99  (all non-empty thumbnails) 
q=(-thumbnail:[* TO *])^99  (all non-null thumbnails) 
q=(thumbnail:*)^99    (all thumbnails) 

但它不起作用。我知道一個事實,我可以增加值:

(campaign:campaign)^99 

工程,將顯示帶有「運動」的文章(也就是說,具有特殊優惠的商品/篇)首先在結果頁中。

爲什麼不這項工作的縮略圖?如何制定Solr查詢,以便在沒有現有縮略圖的文章之前顯示帶有現有縮略圖的文章?

EDIT

作爲MatsLindh正確地指出,

Q =( - 縮略圖:[* TO *])^ 99

指沒有縮略圖的所有文件,而不是所有的非空縮略圖,具體做法是:

q =(縮略圖:[* TO *])。

+0

請不要濫用標籤 - 有沒有在這個問題涉及到[增強](http://stackoverflow.com/tags/boost/info)。 –

+0

道歉。我打算使用「提升」,這個問題太倉促了。 – Jazzbaron

+1

'Q =( - 縮略圖:[* TO *])^ 99'是指沒有縮略圖的所有文檔 - '縮略圖:[* TO *]'將與本領域的所有文檔。你有沒有試過用'bq'將單獨的子句移動到一個單獨的子句中,看看'debugQuery = true'的輸出是什麼? – MatsLindh

回答

0

顯然,問題是縮略圖沒有被我的schema.xml中收錄:

<field name="thumbnail" type="string" indexed="false" stored="true" multiValued="false"/> 

所以我改變了「索引」的值改爲「真」,然後重新索引我的整個架構。查詢語法沒有任何問題。

希望這有助於在未來的任何損失Solr的靈魂。