陋室铭
永远也不要停下学习的脚步(大道至简至易)

solr搞了好久了,没啥进展,没啥大的突破,但是我真的尽力了!

solr7可能是把默认搜索方式去掉了,如下:

在solr7里找了半天以及各种查资料也没发现这个默认搜索方式,后来想,可能是被edismax里的mm取代了吧,都是控制搜索精度的,如下:

这个mm还是挺解决问题的,但是对于我们公司来说就差那么一点,就一点。就这一点我没有解决。正常情况下这个参数能满足大部分需求。它有好多赋值的方式,具体自己参考:点击打开链接

拿我做的举例:商品搜索。

我的主搜索是这样的:product_goods_name:电脑^3 OR (product_goods_name:电脑 AND product_category_name:电脑)^1.5

为什么这么写呢,举个例子,比如说搜电脑,如果按照普通的搜索语句product_goods_name:电脑,搜到的商品可能是电脑包,电脑桌等商品排在前面,明显这不是我们想要的,后来发现每种商品都有属于自己的分类,比如电脑的分类是“电脑,办公”所以干脆让分类也作为查询条件吧,于是就写成这样了。

至于为什么还加了权重,再举个例子,不如说搜电脑桌,不加权重搜到的商品可能是电脑,明显这不是我们想要的,所以总而言之就是商品名匹配为重,分类匹配为辅。

那么问题就来了,这样做就严重影响了mm的效果,它针对的是单一域,而我的显然不是单一域,所以有时候搜一些商品如果库里的产品匹配度达不到你设定的值,那么它就会匹配分开的词,比如说你搜一个“儿童食品”,库里没有达到你的匹配度的商品,那么它就会搜出商品名包含“儿童”或者“食品”的商品,这就范围大了去了,所以到现在还没找到解决办法,愁!

posted on 2018-07-19 14:09  宏宇  阅读(223)  评论(0编辑  收藏  举报