solr搞了好久了,沒啥進展,沒啥大的突破,但是我真的盡力了!
solr7可能是把預設搜尋方式去掉了,如下:
在solr7裡找了半天以及各種查資料也沒發現這個預設搜尋方式,後來想,可能是被edismax裡的mm取代了吧,都是控制搜尋精度的,如下:
這個mm還是挺解決問題的,但是對於我們公司來說就差那麼一點,就一點。就這一點我沒有解決。正常情況下這個引數能滿足大部分需求。它有好多賦值的方式,具體自己參考:點選開啟連結。
拿我做的舉例:商品搜尋。
我的主搜尋是這樣的:product_goods_name:電腦^3 OR (product_goods_name:電腦 AND product_category_name:電腦)^1.5
為什麼這麼寫呢,舉個例子,比如說搜電腦,如果按照普通的搜尋語句product_goods_name:電腦,搜到的商品可能是電腦包,電腦桌等商品排在前面,明顯這不是我們想要的,後來發現每種商品都有屬於自己的分類,比如電腦的分類是“電腦,辦公”所以乾脆讓分類也作為查詢條件吧,於是就寫成這樣了。
至於為什麼還加了權重,再舉個例子,不如說搜電腦桌,不加權重搜到的商品可能是電腦,明顯這不是我們想要的,所以總而言之就是商品名匹配為重,分類匹配為輔。
那麼問題就來了,這樣做就嚴重影響了mm的效果,它針對的是單一域,而我的顯然不是單一域,所以有時候搜一些商品如果庫裡的產品匹配度達不到你設定的值,那麼它就會匹配分開的詞,比如說你搜一個“兒童食品”,庫裡沒有達到你的匹配度的商品,那麼它就會搜出商品名包含“兒童”或者“食品”的商品,這就範圍大了去了,所以到現在還沒找到解決辦法,愁!