我是新的Solr,但期待使用它作为我的网站索引成分的一部分。我正在寻找建议来改进下面的查询。我已经尝试了NGram过滤,但它似乎不工作。我不知道为什么“红洋葱”会比“红辣椒”得分更高?这对我来说毫无意义。理想情况下,用户会搜索“红洋葱”或“红洋葱”,这些得分会更高。任何建议都将不胜感激!我已经尝试了portterstemming过滤器,和ngram过滤,但这些似乎没有任何效果。
hjzp0vay1#
我建议你在这里进行完全匹配。为了达到同样的效果,请将字符串字段类型应用到您的字段中,如下所示。
<field name="name" type="string" indexed="true" stored="true" docValues="true" />
我有索引数据如下。
{ "id":"1", "name" : "red onion" }, { "id":"2", "name" : "red pepper" }, { "id":"3", "name" : "red cabbage" }, { "id":"4", "name" : "red chilli" }
当我搜索名字:红洋葱时,我得到了红洋葱在上面。2请参考下面的solr查询屏幕。
打开了score和debugQuery的屏幕截图。
1条答案
按热度按时间hjzp0vay1#
我建议你在这里进行完全匹配。为了达到同样的效果,请将字符串字段类型应用到您的字段中,如下所示。
我有索引数据如下。
当我搜索名字:红洋葱时,我得到了红洋葱在上面。2请参考下面的solr查询屏幕。
打开了score和debugQuery的屏幕截图。