0

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 查询,以便在没有现有缩略图的文章之前显示具有现有缩略图的文章?

编辑

正如 MatsLindh 正确指出的那样,

q=(-thumbnail:[* TO *])^99

表示所有没有缩略图的文档,而不是所有非空缩略图,这将是:

q=(缩略图:[* TO *])。

4

1 回答 1

0

显然,问题是缩略图没有在我的 schema.xml 中被索引:

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

所以我将“索引”值更改为“真”,然后重新索引我的整个架构。查询语法从来没有任何问题。

希望这对未来失去的 Solr 灵魂有所帮助。

于 2017-02-23T14:44:26.303 回答