即使我给了高分,Solr boost也没有像预期的那样工作



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

但是搜索行为不像预期的那样工作(有时)。我设置了这样的boost值

productCFN 100[我们已经根据搜索字段给出的值定制了boost值]

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))

我的问题是为什么产品没有出现在产品cfn以'CC0'开头的顶部,即使我给了产品cfn最高分

我认为整个问题是由于邻近造成的,但我已经给出了最低分数值,但有时结果仍以错误的顺序显示。

我正在使用StandardTokenizerFactory Tokenizer,它对空白进行标记,以及条带字符。它真的符合我的要求吗?还是使用KeywordTokenizerFactory更好?

我也搜索了DISMAXEDISMAX。如果使用接近度和升压值,真的会影响结果吗?

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

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

我很惊讶为什么它正在搜索上述产品,即使该产品没有任何品牌,UPN名称也不包含X04单词。它是否真的基于数字进行标记,因为04在那里。我完全被solr搜索弄糊涂了。

请帮帮我。

你的问题是使用字符串与文本。默认情况下,字符串字段不会被标记。

你应该搜索文本,你应该使用字符串来搜索facet等

相关内容

  • 没有找到相关文章

最新更新