由于url大小超过SOLR而使用map函数进行排序的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由于url大小超过SOLR而使用map函数进行排序的问题相关的知识,希望对你有一定的参考价值。

我有一个数据存储在我的首选颜色在DB中:红色,黄色,黑色.....假设20种颜色,现在每当我使用SOLR搜索时,我希望我的结果能够根据我喜欢的颜色进行提升?我们怎么能这样做....我尝试了SOLR的地图功能但是对于这么多首选颜色我的solr url长度大大增加了。有没有更简单的方法呢?

答案

将值拆分为单独的标记或将其预处理为多值字段,然后使用提升查询来提升与查询匹配的任何结果。

您可以使用PatternTokenizer将字段拆分为单独的标记:

 <fieldType name="text_color" class="solr.TextField" positionIncrementGap="100">
   <analyzer>
     <tokenizer class="solr.PatternTokenizerFactory" pattern="," />
   </analyzer>
 </fieldType>

<field name="color" type="text_color" indexed="true" stored="true" />

..并使用(e)dismax在查询中提升它:

 &bq=color:red^10

以上是关于由于url大小超过SOLR而使用map函数进行排序的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 solr 中的函数进行过滤和排序

Array.Sort 谷歌内核 数组大小超过10 排序字段都一致 返回的数组非原数组

如何设置/配置solr索引文件的最大大小?

如何确定 Hadoop map和reduce的个数

37如何在函数中设置一个全局变量 ?

solr入门之权重排序方法初探之使用edismax改变权重