2017-02-23 26 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的灵魂。