无法提升缩略图字段 - SOLR
Can't boost thumbnail field - 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>
例如,在上面的例子中,"thumbnail" 包含一个值,因此应该显示在搜索结果页面的较高位置。我试过:
q=(thumbnail:["" TO *])^99 (all non-empty thumbnails)
q=(-thumbnail:[* TO *])^99 (all non-null thumbnails)
q=(thumbnail:*)^99 (all thumbnails)
但是没有用。我知道我可以提升价值:
(campaign:campaign)^99
有效,将首先在结果页面上显示带有 'campaign' 的文章(也就是说,items/articles 有特别优惠)。
为什么这不适用于缩略图?我如何制定 Solr 查询,以便它在没有现有缩略图的文章之前显示具有现有缩略图的文章?
编辑
正如 MatsLindh 正确指出的那样,
q=(-缩略图:[* TO *])^99
表示没有缩略图的所有文档,而不是所有非空缩略图,即:
q=(缩略图:[* TO *])。
显然,问题是缩略图没有在我的 schema.xml 中编入索引:
<field name="thumbnail" type="string" indexed="false" stored="true" multiValued="false"/>
所以我将 "indexed" 值更改为 "true",然后重新索引我的整个模式。查询语法从来没有任何错误。
希望这对将来迷失的 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>
例如,在上面的例子中,"thumbnail" 包含一个值,因此应该显示在搜索结果页面的较高位置。我试过:
q=(thumbnail:["" TO *])^99 (all non-empty thumbnails)
q=(-thumbnail:[* TO *])^99 (all non-null thumbnails)
q=(thumbnail:*)^99 (all thumbnails)
但是没有用。我知道我可以提升价值:
(campaign:campaign)^99
有效,将首先在结果页面上显示带有 'campaign' 的文章(也就是说,items/articles 有特别优惠)。
为什么这不适用于缩略图?我如何制定 Solr 查询,以便它在没有现有缩略图的文章之前显示具有现有缩略图的文章?
编辑
正如 MatsLindh 正确指出的那样,
q=(-缩略图:[* TO *])^99
表示没有缩略图的所有文档,而不是所有非空缩略图,即:
q=(缩略图:[* TO *])。
显然,问题是缩略图没有在我的 schema.xml 中编入索引:
<field name="thumbnail" type="string" indexed="false" stored="true" multiValued="false"/>
所以我将 "indexed" 值更改为 "true",然后重新索引我的整个模式。查询语法从来没有任何错误。
希望这对将来迷失的 Solr 灵魂有所帮助。