即使我给出了高分,Solr助推也没有按预期工作

时间:2015-05-25 04:07:42

标签: apache solr lucene hybris solr-boost

我有一个搜索字段,用户可以根据三个字段搜索产品:productCFN (String type)productBrand (String type)productUpnName (text type)。我基于优先级给出提升值,以便结果将以相同的顺序(最高提升值到最低提升值)。

但搜索行为无法按预期工作(有时)。我给了这样的提升值

productCFN 100 [我们根据为搜索字段提供的值自定义了提升值]

productBrand 20

productUpnName 50

因此,如果我正在搜索,它应首先按productCFN搜索productUpnName然后productBrand,并在同一订单结果将显示在前端

我也检查了查询,似乎是正确的,但不知道为什么订购不起作用(我用'CC0'搜索了)

q=(productUpnName_text_en_us:(CC0~^25.0+OR+cc0~^25.0+OR+cc0^100.0+OR+CC0^100.0+OR+CC0*^50.0+OR+cc0*^50.0))+OR+(productCFN_string:(cc0^200.0+OR+CC0*^100.0+OR+CC0^200.0+OR+cc0*^100.0))+OR+(productBrand_string_mv:(CC0^40.0+OR+cc0*^20.0+OR+cc0^40.0+OR+CC0*^20.0))

我的问题是为什么即使我给productCFN得分最高,产品也没有出现在其产品CFN以'CC0'开头的顶部。

我认为整个问题是由于接近而产生的,但我已经给出了最低分值,有时候resule显示的顺序错误。

我正在使用StandardTokenizerFactory Tokenizer,它在空格上进行标记,以及剥离字符。它是否真的符合我的要求,或者最好使用KeywordTokenizerFactory

我还搜索了DISMAXEDISMAX。如果使用接近度和提升值,它是否真的会影响结果。

让我们再看一个例子,我有一个产品带有productCFN X0406295L,我开始按X04进行搜索,但它在顶部显示错误的产品。

productCFN - 176-504 productUpnName - CASE 176-504 ATLANTIS SCREW TRAY FA

我很惊讶为什么它正在搜索上述产品,即使该产品没有任何品牌且UPN名称也不包含X04字。 它是否真的基于数字进行标记,因为04存在。我完全对solr搜索感到困惑。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您的问题是使用String vs Text。默认情况下,String字段不会被标记化。

你应该对Text进行搜索,你应该使用String for Facets等。

相关问题